io.launcher.unix, unix.ffi: Reset ignored signal in process launcher. Fix SIG_DFL etc.
parent
ed73d4c63a
commit
f12633e73b
|
@ -75,7 +75,12 @@ IN: io.launcher.unix
|
||||||
dup get-environment set-os-envs
|
dup get-environment set-os-envs
|
||||||
] when ;
|
] when ;
|
||||||
|
|
||||||
|
! Ignored signals are not reset to the default handler.
|
||||||
|
: reset-ignored-signals ( process -- process )
|
||||||
|
SIGPIPE SIG_DFL signal drop ;
|
||||||
|
|
||||||
: spawn-process ( process -- * )
|
: spawn-process ( process -- * )
|
||||||
|
[ reset-ignored-signals ] [ 2drop 248 _exit ] recover
|
||||||
[ setup-process-group ] [ 2drop 249 _exit ] recover
|
[ setup-process-group ] [ 2drop 249 _exit ] recover
|
||||||
[ setup-priority ] [ 2drop 250 _exit ] recover
|
[ setup-priority ] [ 2drop 250 _exit ] recover
|
||||||
[ setup-redirection ] [ 2drop 251 _exit ] recover
|
[ setup-redirection ] [ 2drop 251 _exit ] recover
|
||||||
|
|
|
@ -39,9 +39,9 @@ CONSTANT: DT_LNK 10
|
||||||
CONSTANT: DT_SOCK 12
|
CONSTANT: DT_SOCK 12
|
||||||
CONSTANT: DT_WHT 14
|
CONSTANT: DT_WHT 14
|
||||||
|
|
||||||
: SIG_EFF ( -- obj ) -1 void* <ref> ; inline
|
: SIG_EFF ( -- obj ) ALIEN: -1 void* <ref> ; inline
|
||||||
: SIG_DFL ( -- obj ) 0 void* <ref> ; inline
|
: SIG_DFL ( -- obj ) ALIEN: 0 void* <ref> ; inline
|
||||||
: SIG_IGN ( -- obj ) 1 void* <ref> ; inline
|
: SIG_IGN ( -- obj ) ALIEN: 1 void* <ref> ; inline
|
||||||
|
|
||||||
LIBRARY: libc
|
LIBRARY: libc
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue