--- 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