io.launcher.unix, unix.ffi: Reset ignored signal in process launcher. Fix SIG_DFL etc.

db4
Doug Coleman 2013-03-24 12:37:16 -07:00
parent ed73d4c63a
commit f12633e73b
2 changed files with 8 additions and 3 deletions

View File

@ -75,7 +75,12 @@ IN: io.launcher.unix
dup get-environment set-os-envs
] when ;
! Ignored signals are not reset to the default handler.
: reset-ignored-signals ( process -- process )
SIGPIPE SIG_DFL signal drop ;
: spawn-process ( process -- * )
[ reset-ignored-signals ] [ 2drop 248 _exit ] recover
[ setup-process-group ] [ 2drop 249 _exit ] recover
[ setup-priority ] [ 2drop 250 _exit ] recover
[ setup-redirection ] [ 2drop 251 _exit ] recover

View File

@ -39,9 +39,9 @@ CONSTANT: DT_LNK 10
CONSTANT: DT_SOCK 12
CONSTANT: DT_WHT 14
: SIG_EFF ( -- obj ) -1 void* <ref> ; inline
: SIG_DFL ( -- obj ) 0 void* <ref> ; inline
: SIG_IGN ( -- obj ) 1 void* <ref> ; inline
: SIG_EFF ( -- obj ) ALIEN: -1 void* <ref> ; inline
: SIG_DFL ( -- obj ) ALIEN: 0 void* <ref> ; inline
: SIG_IGN ( -- obj ) ALIEN: 1 void* <ref> ; inline
LIBRARY: libc