diff --git a/src/Quasar/Resources.hs b/src/Quasar/Resources.hs index 868337119ea04b813eb0b1a474e78f58c113fe0b..c06672a780abd9fa383c6a895f60e7d83d841e88 100644 --- a/src/Quasar/Resources.hs +++ b/src/Quasar/Resources.hs @@ -39,6 +39,9 @@ data Disposer = FnDisposer Unique TIOWorker ExceptionChannel DisposerState Finalizers | ResourceManagerDisposer ResourceManager +instance Resource Disposer where + getDisposer = id + type DisposeFn = IO (Awaitable ()) @@ -125,6 +128,9 @@ data ResourceManagerState = ResourceManagerNormal (TVar (HashMap Unique Disposer)) TIOWorker | ResourceManagerDisposing (Awaitable [DisposeDependencies]) | ResourceManagerDisposed + +instance Resource ResourceManager where + getDisposer = ResourceManagerDisposer newResourceManagerSTM :: TIOWorker -> STM ResourceManager