summaryrefslogtreecommitdiff
path: root/src/Run
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-06-01 16:42:09 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-06-01 16:56:21 +0200
commitb698fa819723635ddbdde15e592c3b7acc018024 (patch)
tree11c7e543209a2bc6d93f32bb2c979736fba6eb26 /src/Run
parent66de6b7e5ed20fb8b833ff267fe578e4716e83c7 (diff)
Execute shell commands in appropriate network namespace
Changelog: Execute shell commands in appropriate network namespace
Diffstat (limited to 'src/Run')
-rw-r--r--src/Run/Monad.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Run/Monad.hs b/src/Run/Monad.hs
index e107017..abef32d 100644
--- a/src/Run/Monad.hs
+++ b/src/Run/Monad.hs
@@ -7,6 +7,7 @@ module Run.Monad (
finally,
forkTest,
+ forkTestUsing,
) where
import Control.Concurrent
@@ -110,9 +111,12 @@ finally act handler = do
return x
forkTest :: TestRun () -> TestRun ThreadId
-forkTest act = do
+forkTest = forkTestUsing forkIO
+
+forkTestUsing :: (IO () -> IO ThreadId) -> TestRun () -> TestRun ThreadId
+forkTestUsing fork act = do
tenv <- ask
- liftIO $ forkIO $ do
+ liftIO $ fork $ do
runExceptT (flip runReaderT tenv $ fromTestRun act) >>= \case
Left e -> atomically $ writeTVar (teFailed $ fst tenv) (Just e)
Right () -> return ()