ProcessorScheduler.st
branchjv
changeset 21495 14d8ba8e3eec
parent 21387 e3865533e6a6
child 23074 07a6d8d23ffd
--- a/ProcessorScheduler.st	Wed Feb 01 22:03:10 2017 +0000
+++ b/ProcessorScheduler.st	Mon Feb 20 23:12:06 2017 +0000
@@ -1209,7 +1209,7 @@
      status of the OS process changes (e.g. the process terminates).
      The method returns the value from aBlockReturningPid (i.e. a pid or nil)."
 
-    |pid wasBlocked exitStatus|
+    |pid wasBlocked|
 
     "/ aBlock will be evaluated:
     "/   on unix: as soon as a SIGCHLD interrupt for pid has been received.
@@ -1220,14 +1220,7 @@
     "/ start the OS-Process
     pid := aBlockReturningPid value.
     pid notNil ifTrue:[
-        osChildExitActions at:pid put:actionBlock.
-    ].
-    "check for a race, that SIGCHILD was received before we could register the actionBlock"
-    exitStatus := OperatingSystem childProcessWait:false pid:pid.
-    exitStatus notNil ifTrue:[
-        self unmonitorPid:pid.
-        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
-        actionBlock value:exitStatus.
+	osChildExitActions at:pid put:actionBlock.
     ].
     wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
     ^ pid