diff --git a/basis/io/backend/unix/unix.factor b/basis/io/backend/unix/unix.factor index 96f0d21749..37dc40bcca 100755 --- a/basis/io/backend/unix/unix.factor +++ b/basis/io/backend/unix/unix.factor @@ -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 >>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 init-fd - '[ [ 4 _ io:stream-read ] loop ] "Signals" spawn drop ; +: start-signal-pipe-thread ( -- ) + signal-pipe-fd [ init-fd + '[ [ 4 _ io:stream-read ] loop ] "Signals" spawn drop + ] when* ; M: unix init-stdio @@ -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