diff -r 0de96fb520ac -r b568c4185444 Registry.st --- a/Registry.st Sat Jun 07 10:13:40 1997 +0200 +++ b/Registry.st Sat Jun 07 13:17:35 1997 +0200 @@ -286,6 +286,10 @@ ^ self ]. + "/ + "/ allow interrupts to be handled here + "/ (but continue with interrupts disabled) + "/ wasBlocked ifFalse:[ OperatingSystem unblockInterrupts. OperatingSystem blockInterrupts. @@ -307,12 +311,19 @@ ^ self ]. + "/ + "/ allow interrupts to be handled here + "/ (but continue with interrupts disabled) + "/ wasBlocked ifFalse:[ OperatingSystem unblockInterrupts. OperatingSystem blockInterrupts. ]. - "search for a free slot, on the fly look for leftovers (no longer happens)" + "/ + "/ search for a free slot ... + "/ on the fly look for leftovers (should no longer happen) + "/ idx0 := 1. index := registeredObjects identityIndexOf:nil startingAt:idx0. [index ~~ 0] whileTrue:[ @@ -331,7 +342,15 @@ "/ mhmh - a registeredObject vanished, but its "/ phantom is still there ... - 'Registry [warning]: there should be no leftOvers' errorPrintCR. + "/ + "/ this may happen, if the registries dispose handling is + "/ currently being executed by a lower priority process, + "/ and the registeredObject has already been nilled, + "/ but the phantom is being notified (in the other process). + + 'Registry [warning]: leftOver phantom' errorPrintCR. + 'Registry [info]: phantom:' infoPrintCR. + p infoPrintCR. "/ "tell the phantom" "/ handleArray at:index put:nil. @@ -365,7 +384,7 @@ wasBlocked ifFalse:[OperatingSystem unblockInterrupts]. "Modified: 7.1.1997 / 16:56:03 / stefan" - "Modified: 16.4.1997 / 15:21:54 / cg" + "Modified: 7.6.1997 / 13:11:01 / cg" ! registerChange:anObject @@ -451,5 +470,5 @@ !Registry class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Registry.st,v 1.46 1997-06-02 17:00:44 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Registry.st,v 1.47 1997-06-07 11:17:35 cg Exp $' ! !