diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-04-05 11:47:12 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-04-05 12:33:39 +0200 |
| commit | e06402099ce256405610d0be64760266f969dcd0 (patch) | |
| tree | 1c1e10ba0aa2f6dbf9ca04c77a9ad0b8122645ad /src/Process.hs | |
| parent | ad00b4534582c5ce94243f7dda3b76d7c0bba021 (diff) | |
Changelog: Added `killwith` clause to set a signal used to terminate `spawn`ed process.
Diffstat (limited to 'src/Process.hs')
| -rw-r--r-- | src/Process.hs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Process.hs b/src/Process.hs index d4ee68b..4f4c286 100644 --- a/src/Process.hs +++ b/src/Process.hs @@ -2,6 +2,7 @@ module Process ( Process(..), ProcessId(..), textProcId, ProcName(..), textProcName, unpackProcName, + Signal, send, outProc, outProcName, lineReadingLoop, @@ -37,13 +38,13 @@ import System.FilePath import System.IO import System.IO.Error import System.Posix.Process -import System.Posix.Signals import System.Process import {-# SOURCE #-} GDB import Network import Network.Ip import Output +import Process.Signal import Run.Monad import Script.Expr import Script.Expr.Class @@ -189,7 +190,7 @@ closeProcess timeout p = do Nothing -> return () Just sig -> case procPid p of Nothing -> return () - Just pid -> liftIO $ signalProcess sig pid + Just pid -> signalProcess sig pid liftIO $ void $ forkIO $ do threadDelay $ floor $ 1000000 * timeout @@ -205,7 +206,7 @@ closeProcess timeout p = do outProc OutputChildFail p $ "exit code: " <> T.pack (show code) throwError Failed Just (Terminated sig _) - | Just sig == procKillWith p -> return () + | Just (Signal sig) == procKillWith p -> return () | otherwise -> do outProc OutputChildFail p $ "killed with signal " <> T.pack (show sig) throwError Failed |