io.backend.unix: startup hook for signal-pipe

db4
Joe Groff 2011-11-07 23:07:00 -08:00
parent 5f811c0573
commit 8337b08d0d
1 changed files with 8 additions and 5 deletions

View File

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