diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs
index 742216ce2a016b31173b63d376c31a95ab667549..aefeb809677d6a566d4d1cda1943f6bdc679e6fb 100644
--- a/src/Quasar/ResourceManager.hs
+++ b/src/Quasar/ResourceManager.hs
@@ -8,6 +8,7 @@ module Quasar.ResourceManager (
   registerNewResource_,
   registerDisposable,
   registerDisposeAction,
+  registerAsyncDisposeAction,
   withScopedResourceManager,
   onResourceManager,
   captureDisposable,
@@ -133,6 +134,9 @@ registerDisposable disposable = do
 registerDisposeAction :: MonadResourceManager m => IO () -> m ()
 registerDisposeAction disposeAction = mask_ $ registerDisposable =<< newDisposable disposeAction
 
+registerAsyncDisposeAction :: MonadResourceManager m => IO () -> m ()
+registerAsyncDisposeAction disposeAction = mask_ $ registerDisposable =<< newAsyncDisposable disposeAction
+
 -- | Locks the resource manager (which may fail), runs the computation and registeres the resulting disposable.
 --
 -- The computation will be run in masked state.