ProcessorScheduler.st
branchjv
changeset 23074 07a6d8d23ffd
parent 23073 7e7d5e29738c
parent 21495 14d8ba8e3eec
child 23107 40173e082cbc
--- a/ProcessorScheduler.st	Mon Feb 13 21:29:46 2017 +0000
+++ b/ProcessorScheduler.st	Thu May 04 15:31:33 2017 +0200
@@ -1208,7 +1208,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.
@@ -1219,14 +1219,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