From f4a8f2a73f033174734ae7aef793c81c6a48ac1f Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Sun, 2 Jan 2022 00:57:01 +0100
Subject: [PATCH] Export awaitSTM

---
 src/Quasar/Awaitable.hs | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/Quasar/Awaitable.hs b/src/Quasar/Awaitable.hs
index 14992a8..ddbd649 100644
--- a/src/Quasar/Awaitable.hs
+++ b/src/Quasar/Awaitable.hs
@@ -2,6 +2,7 @@ module Quasar.Awaitable (
   -- * MonadAwaitable
   MonadAwait(..),
   peekAwaitable,
+  awaitSTM,
 
   -- * Awaitable
   IsAwaitable(toAwaitable),
@@ -76,6 +77,8 @@ instance MonadAwait IO where
       `catch`
         \BlockedIndefinitelyOnSTM -> throwM BlockedIndefinitelyOnAwait
 
+-- | `awaitSTM` exists as an explicit alternative to an `Awaitable STM`-instance, to prevent code which creates- and
+-- then awaits resources without knowing it's running in STM (which would block indefinitely when run in STM).
 awaitSTM :: Awaitable a -> STM a
 awaitSTM (toAwaitable -> Awaitable x) =
   x `catch` \BlockedIndefinitelyOnSTM -> throwM BlockedIndefinitelyOnAwait
-- 
GitLab