24 lines
		
	
	
		
			537 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			537 B
		
	
	
	
		
			Factor
		
	
	
! (c)2011 Joe Groff bsd license
 | 
						|
USING: assocs io.backend.unix kernel namespaces sequences
 | 
						|
threads ;
 | 
						|
IN: unix.signals
 | 
						|
 | 
						|
<PRIVATE
 | 
						|
 | 
						|
SYMBOL: signal-handlers
 | 
						|
 | 
						|
signal-handlers [ H{ } ] initialize
 | 
						|
 | 
						|
: dispatch-signal ( sig -- )
 | 
						|
    signal-handlers get-global at [ in-thread ] each ;
 | 
						|
 | 
						|
PRIVATE>
 | 
						|
 | 
						|
: add-signal-handler ( handler: ( -- ) sig -- )
 | 
						|
    signal-handlers get-global push-at ;
 | 
						|
 | 
						|
: remove-signal-handler ( handler sig -- )
 | 
						|
    signal-handlers get-global at [ remove! drop ] [ drop ] if* ;
 | 
						|
 | 
						|
[ dispatch-signal ] dispatch-signal-hook set-global
 |