io.backend.unix: startup hook for signal-pipe
parent
5f811c0573
commit
8337b08d0d
|
@ -7,7 +7,7 @@ io.encodings math.parser continuations system libc namespaces
|
|||
make io.timeouts io.encodings.utf8 destructors
|
||||
destructors.private accessors summary combinators locals
|
||||
unix.time unix.types fry io.backend.unix.multiplexers
|
||||
classes.struct ;
|
||||
classes.struct init ;
|
||||
QUALIFIED: io
|
||||
IN: io.backend.unix
|
||||
|
||||
|
@ -188,11 +188,12 @@ M: stdin cancel-operation
|
|||
data-read-fd <fd> >>data ;
|
||||
|
||||
: signal-pipe-fd ( -- n )
|
||||
OBJ-SIGNAL-PIPE special-object { fixnum } declare ; inline
|
||||
OBJ-SIGNAL-PIPE special-object ; inline
|
||||
|
||||
: init-signal-pipe ( -- )
|
||||
signal-pipe-fd <fd> init-fd <input-port>
|
||||
'[ [ 4 _ io:stream-read ] loop ] "Signals" spawn drop ;
|
||||
: start-signal-pipe-thread ( -- )
|
||||
signal-pipe-fd [ <fd> init-fd <input-port>
|
||||
'[ [ 4 _ io:stream-read ] loop ] "Signals" spawn drop
|
||||
] when* ;
|
||||
|
||||
M: unix init-stdio
|
||||
<stdin> <input-port>
|
||||
|
@ -214,3 +215,5 @@ TUPLE: mx-port < port mx ;
|
|||
|
||||
:: ?flag ( n mask symbol -- n )
|
||||
n mask bitand 0 > [ symbol , ] when n ;
|
||||
|
||||
[ start-signal-pipe-thread ] "io.backend.unix:signal-pipe-thread" add-startup-hook
|
||||
|
|
Loading…
Reference in New Issue