io.launcher.unix: sometimes both WIFEXITED and WIFSIGNALED would return true, and the wrong status would be reported
parent
583262ca7b
commit
e2500c14d2
|
@ -3,7 +3,7 @@ USING: io.files io.files.temp io.directories io.pathnames
|
|||
tools.test io.launcher arrays io namespaces continuations math
|
||||
io.encodings.binary io.encodings.ascii accessors kernel
|
||||
sequences io.encodings.utf8 destructors io.streams.duplex locals
|
||||
concurrency.promises threads unix.process calendar ;
|
||||
concurrency.promises threads unix.process calendar unix ;
|
||||
|
||||
[ ] [
|
||||
[ "launcher-test-1" temp-file delete-file ] ignore-errors
|
||||
|
@ -134,7 +134,7 @@ concurrency.promises threads unix.process calendar ;
|
|||
[ p fulfill ] [ wait-for-process s fulfill ] bi
|
||||
] in-thread
|
||||
|
||||
p 1 seconds ?promise-timeout handle>> 9 kill drop
|
||||
p 1 seconds ?promise-timeout handle>> kill-process*
|
||||
s ?promise 0 =
|
||||
]
|
||||
] unit-test
|
||||
|
|
|
@ -91,7 +91,7 @@ M: unix kill-process* ( pid -- )
|
|||
TUPLE: signal n ;
|
||||
|
||||
: code>status ( code -- obj )
|
||||
dup WIFEXITED [ WEXITSTATUS ] [ WTERMSIG signal boa ] if ;
|
||||
dup WIFSIGNALED [ WTERMSIG signal boa ] [ WEXITSTATUS ] if ;
|
||||
|
||||
M: unix wait-for-processes ( -- ? )
|
||||
0 <int> -1 over WNOHANG waitpid
|
||||
|
|
Loading…
Reference in New Issue