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
 | 
			
		||||
    ] 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue