Block.st
changeset 864 9d034b442868
parent 829 fc386319f41c
child 1037 4488f834cb6b
--- a/Block.st	Mon Jan 15 22:42:55 1996 +0100
+++ b/Block.st	Mon Jan 15 22:43:12 1996 +0100
@@ -81,7 +81,7 @@
 !
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.43 1996-01-04 01:22:50 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.44 1996-01-15 21:43:12 cg Exp $'
 ! !
 
 !Block class methodsFor:'initialization'!
@@ -861,7 +861,10 @@
      if any becomes runnable due to the evaluation of the receiver
      (i.e. if a semaphore is signalled)."
 
-    Processor activeProcess uninterruptablyDo:self
+    |wasBlocked|
+
+    wasBlocked := OperatingSystem blockInterrupts.
+    ^ self valueNowOrOnUnwindDo:[wasBlocked ifTrue:[OperatingSystem unblockInterrupts]].
 !
 
 valueUnpreemptively
@@ -872,7 +875,7 @@
 
     activeProcess := Processor activeProcess.
     oldPrio := activeProcess changePriority:(Processor highestPriority).
-    self valueNowOrOnUnwindDo:[
+    ^ self valueNowOrOnUnwindDo:[
 	activeProcess priority:oldPrio
     ]
 ! !