]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/signals/signals.factor
9f37eafbe003ecc9cd22576d35c697a9a964bcfa
[factor.git] / basis / unix / signals / signals.factor
1 ! (c)2011 Joe Groff bsd license
2 USING: assocs io.backend.unix kernel namespaces sequences
3 threads ;
4 IN: unix.signals
5
6 <PRIVATE
7
8 SYMBOL: signal-handlers
9
10 signal-handlers [ H{ } ] initialize
11
12 : dispatch-signal ( sig -- )
13     signal-handlers get-global at [ in-thread ] each ;
14
15 PRIVATE>
16
17 : add-signal-handler ( handler: ( -- ) sig -- )
18     signal-handlers get-global push-at ;
19
20 : remove-signal-handler ( handler sig -- )
21     signal-handlers get-global at [ remove! drop ] [ drop ] if* ;
22
23 [ dispatch-signal ] dispatch-signal-hook set-global