diff --git a/src/Quasar/Async/Fork.hs b/src/Quasar/Async/Fork.hs index e8944352336b7f1334a271286bee7ebcd6ca4fb3..c4b642273aa6603537f9563dd4d15a8d6fb96bb9 100644 --- a/src/Quasar/Async/Fork.hs +++ b/src/Quasar/Async/Fork.hs @@ -51,10 +51,8 @@ forkAsyncWithUnmaskSTM fn worker exChan = join <$> startShortIOSTM (forkAsyncWit -- * Fork in ShortIO (with ExceptionChannel) forkWithUnmaskShortIO :: ((forall a. IO a -> IO a) -> IO ()) -> ExceptionChannel -> ShortIO ThreadId -forkWithUnmaskShortIO fn exChan = forkFn +forkWithUnmaskShortIO fn exChan = mask_ $ forkIOWithUnmaskShortIO wrappedFn where - forkFn :: ShortIO ThreadId - forkFn = mask_ $ forkIOWithUnmaskShortIO wrappedFn wrappedFn :: (forall a. IO a -> IO a) -> IO () wrappedFn unmask = fn unmask `catchAll` \ex -> atomically (throwToExceptionChannel exChan ex)