diff --git a/src/Quasar/Async.hs b/src/Quasar/Async.hs index 457828b288883cdef43f98525e226b6cc503afec..06c196b71053a59be1ae096df780ea5433870794 100644 --- a/src/Quasar/Async.hs +++ b/src/Quasar/Async.hs @@ -1,6 +1,8 @@ module Quasar.Async ( -- * Async/await MonadAsync(..), + async_, + asyncWithUnmask_, -- * Task Task, @@ -80,6 +82,14 @@ liftUnmask unmask action = do liftIO $ unmask $ runReaderT action value +async_ :: MonadAsync m => m () -> m () +async_ = void . async + +asyncWithUnmask_ :: MonadAsync m => ((forall a. m a -> m a) -> m ()) -> m () +asyncWithUnmask_ action = void $ asyncWithUnmask action + + + -- | A task that is running asynchronously. It has a result and can fail. -- The result (or exception) can be aquired by using the `IsAwaitable` class (e.g. by calling `await` or `awaitIO`).