From a458b56b89b15ba2388b203f82c1ca4a02ef1e84 Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Wed, 25 Aug 2021 00:41:38 +0200
Subject: [PATCH] Add withResourceManager

---
 src/Quasar/Disposable.hs | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/Quasar/Disposable.hs b/src/Quasar/Disposable.hs
index 29d9291..250abb5 100644
--- a/src/Quasar/Disposable.hs
+++ b/src/Quasar/Disposable.hs
@@ -10,11 +10,12 @@ module Quasar.Disposable (
   -- ** ResourceManager
   ResourceManager,
   HasResourceManager(..),
+  withResourceManager,
   newResourceManager,
-  disposeEventually,
   attachDisposable,
   attachDisposeAction,
   attachDisposeAction_,
+  disposeEventually,
 ) where
 
 import Control.Concurrent.STM
@@ -135,6 +136,9 @@ class HasResourceManager a where
 instance IsDisposable ResourceManager where
   toDisposable = undefined
 
+withResourceManager :: (ResourceManager -> IO a) -> IO a
+withResourceManager = bracket newResourceManager (awaitIO <=< dispose)
+
 newResourceManager :: IO ResourceManager
 newResourceManager = pure ResourceManager
 
-- 
GitLab