diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-06-01 16:42:09 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-06-01 16:56:21 +0200 |
commit | b698fa819723635ddbdde15e592c3b7acc018024 (patch) | |
tree | 11c7e543209a2bc6d93f32bb2c979736fba6eb26 /src/Run | |
parent | 66de6b7e5ed20fb8b833ff267fe578e4716e83c7 (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.hs | 8 |
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 () |