Skip to content
Snippets Groups Projects
Commit 08944b88 authored by Jens Nolte's avatar Jens Nolte
Browse files

Add runQuasarSTM and execForeignQuasarSTM

parent c85ed867
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,7 @@ module Quasar.MonadQuasar (
withQuasarGeneric,
runQuasarIO,
runQuasarSTM,
liftQuasarIO,
quasarAtomically,
......@@ -166,6 +167,11 @@ liftQuasarIO fn = do
runQuasarIO :: MonadIO m => Quasar -> QuasarIO a -> m a
runQuasarIO quasar fn = liftIO $ runReaderT fn quasar
{-# SPECIALIZE runQuasarIO :: Quasar -> QuasarIO a -> IO a #-}
runQuasarSTM :: MonadSTM m => Quasar -> QuasarSTM a -> m a
runQuasarSTM quasar (QuasarSTM fn) = liftSTM $ runReaderT fn quasar
{-# SPECIALIZE runQuasarSTM :: Quasar -> QuasarSTM a -> STM a #-}
quasarAtomically :: (MonadQuasar m, MonadIO m) => QuasarSTM a -> m a
quasarAtomically (QuasarSTM fn) = do
......
......@@ -34,9 +34,8 @@ execForeignQuasarIO quasar fn = runQuasarIO quasar $
awaitSuccessOrFailure
{-# SPECIALIZE execForeignQuasarIO :: Quasar -> QuasarIO () -> IO () #-}
execForeignQuasarSTM :: MonadQuasar m => Quasar -> QuasarSTM () -> m ()
execForeignQuasarSTM quasar fn = ensureQuasarSTM $ localQuasar quasar $ redirectExceptionToSink_ fn
{-# SPECIALIZE execForeignQuasarSTM :: Quasar -> QuasarSTM () -> QuasarIO () #-}
execForeignQuasarSTM :: MonadSTM m => Quasar -> QuasarSTM () -> m ()
execForeignQuasarSTM quasar fn = liftSTM $ runQuasarSTM quasar $ redirectExceptionToSink_ fn
{-# SPECIALIZE execForeignQuasarSTM :: Quasar -> QuasarSTM () -> QuasarSTM () #-}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment