process>> . ;
M: process >process
- dup process-started? [ process-already-started ] when
+ dup process-started? [ throw-process-already-started ] when
clone ;
M: object >process <process> swap >>command ;
: (wait-for-process) ( process -- status )
dup handle>>
[ self over processes get at push "process" suspend drop ] when
- dup killed>> [ process-was-killed ] [ status>> ] if ;
+ dup killed>> [ throw process-was-killed ] [ status>> ] if ;
: wait-for-process ( process -- status )
[ (wait-for-process) ] with-timeout ;
] [ process>> . ] bi ;
: check-success ( process status -- )
- 0 = [ drop ] [ process-failed ] if ;
+ 0 = [ drop ] [ throw-process-failed ] if ;
: wait-for-success ( process -- )
dup wait-for-process check-success ;
[ +closed+ or ] change-stdin
utf8 (process-reader)
[ [ stream-contents ] [ dup (wait-for-process) ] bi* ] with-timeout
- 0 = [ 2drop ] [ output-process-error ] if ;
+ 0 = [ 2drop ] [ throw-output-process-error ] if ;
<PRIVATE