From d3e872c79c495b776652518e0a76e41755a058e6 Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Mon, 30 Aug 2021 23:14:09 +0200
Subject: [PATCH] Unregister from observable when stream is closed

---
 src/Quasar/Network/Runtime/Observable.hs | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/Quasar/Network/Runtime/Observable.hs b/src/Quasar/Network/Runtime/Observable.hs
index eb4e7ec..5a32a5e 100644
--- a/src/Quasar/Network/Runtime/Observable.hs
+++ b/src/Quasar/Network/Runtime/Observable.hs
@@ -49,6 +49,8 @@ newObservableStub startRetrieveRequest startObserveRequest = pure uncachedObserv
     retrieveFn = toTask <$> startRetrieveRequest
 
 observeToStream :: (Binary v, MonadAsync m) => Observable v -> Stream (PackedObservableMessage v) Void -> m ()
-observeToStream observable stream =
-  asyncObserve_ observable \msg ->
+observeToStream observable stream = do
+  disposable <- asyncObserve observable \msg ->
     streamSend stream $ packObservableMessage msg
+
+  attachDisposable (getResourceManager stream) disposable
-- 
GitLab