From febd95c6ca8be220cb33b5ff5d6303f47b31dad8 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Tue, 21 Apr 2026 20:52:01 +0800 Subject: [PATCH] fix(db-worker): stop remote runtime when closing current graph --- src/main/frontend/persist_db.cljs | 30 +++++++++++- src/test/frontend/persist_db_test.cljs | 65 ++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 2 deletions(-) diff --git a/src/main/frontend/persist_db.cljs b/src/main/frontend/persist_db.cljs index de1d3e71b6..2f2951ac47 100644 --- a/src/main/frontend/persist_db.cljs +++ b/src/main/frontend/persist_db.cljs @@ -19,6 +19,26 @@ (defonce remote-db (atom nil)) (defonce remote-repo (atom nil)) +(defn- clear-remote-runtime! + [] + (reset! remote-db nil) + (reset! remote-repo nil) + (reset! state/*db-worker nil)) + +(defn- (remote/stop! remote-client) + (p/finally + (fn [] + (when (= repo @remote-repo) + (clear-remote-runtime!))))) + (do + (clear-remote-runtime!) + (p/resolved true))) + (p/resolved false))) + (defn- node-runtime? [] (and (exists? js/process) @@ -109,8 +129,14 @@ (defn (remote/invoke! (:client remote-client) "thread-api/close-db" false [repo]) + (p/catch (fn [_] nil))) + _ ( (p/let [_ (persist-db/ (p/let [_ (persist-db/