0 | module System.UV.Signal
2 | import System.UV.Loop
3 | import System.UV.Pointer
4 | import System.UV.Raw.Handle
5 | import public System.UV.Raw.Signal
9 | parameters {auto cc : CloseCB}
11 | Resource (Ptr Signal) where
12 | release h = uv_close h cc
14 | parameters {auto l : UVLoop}
15 | {auto has : Has UVError es}
17 | mkSignal : Async es (Ptr Signal)
18 | mkSignal = mallocPtr Signal >>= uvAct (uv_signal_init l.loop)
26 | onSignal : SigCode -> Async es SigCode
30 | (\p => liftIO $
ignore (uv_signal_stop p))
32 | (\ps,cb => uv_signal_start ps (\_,_ => cb c) (sigToCode c))