From 572481e5573665d9354bb7c7494bca8402058d7a Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Sun, 3 Apr 2022 18:59:07 +0200 Subject: [PATCH] Add missing fork variants --- src/Quasar/Async/Fork.hs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Quasar/Async/Fork.hs b/src/Quasar/Async/Fork.hs index 3dfd70e..151c874 100644 --- a/src/Quasar/Async/Fork.hs +++ b/src/Quasar/Async/Fork.hs @@ -2,6 +2,8 @@ module Quasar.Async.Fork ( -- * Forking with an asynchronous exception channel -- ** IO + fork, + fork_, forkWithUnmask, forkWithUnmask_, forkFuture, @@ -53,6 +55,12 @@ forkAsyncWithUnmaskSTM fn worker exChan = join <$> startShortIOSTM (unsafeShortI -- * Fork in IO, redirecting errors to an ExceptionSink +fork :: IO () -> ExceptionSink -> IO ThreadId +fork fn exSink = forkWithUnmask ($ fn) exSink + +fork_ :: IO () -> ExceptionSink -> IO () +fork_ fn exSink = void $ fork fn exSink + forkWithUnmask :: ((forall a. IO a -> IO a) -> IO ()) -> ExceptionSink -> IO ThreadId forkWithUnmask fn exChan = mask_ $ forkIOWithUnmask wrappedFn where -- GitLab