From 8ab59796365f9b9d4e000b1a52a8424d92600336 Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Mon, 4 Oct 2021 15:08:22 +0200
Subject: [PATCH] Add FailedToRegisterResource exception

---
 src/Quasar/ResourceManager.hs | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs
index 784059b..393bf17 100644
--- a/src/Quasar/ResourceManager.hs
+++ b/src/Quasar/ResourceManager.hs
@@ -1,6 +1,7 @@
 module Quasar.ResourceManager (
   -- * MonadResourceManager
   MonadResourceManager(..),
+  FailedToRegisterResource,
   registerDisposable,
   registerDisposeAction,
   registerSimpleDisposeAction,
@@ -51,6 +52,12 @@ import Quasar.Prelude
 import System.IO (fixIO, hPutStrLn, stderr)
 
 
+data FailedToRegisterResource = FailedToRegisterResource
+  deriving stock (Eq, Show)
+
+instance Exception FailedToRegisterResource where
+  displayException FailedToRegisterResource =
+    "Failed to register a resource to a resource manager. This might result in leaked resources if left unhandled."
 
 -- | Internal entry of `ResourceManager`. The `TMVar` will be set to `Nothing` when the disposable has completed disposing.
 newtype ResourceManagerEntry = ResourceManagerEntry (TMVar (Awaitable (), Disposable))
-- 
GitLab