Browse Source

fix: keep alive by sending messages from worker to main thread

Tienson Qin 1 year ago
parent
commit
9cec07e89c
2 changed files with 2 additions and 6 deletions
  1. 1 0
      src/main/frontend/db_worker.cljs
  2. 1 6
      src/main/frontend/persist_db/browser.cljs

+ 1 - 0
src/main/frontend/db_worker.cljs

@@ -644,6 +644,7 @@
   (let [^js obj (DBWorker.)]
     (worker-state/set-worker-object! obj)
     (file/<ratelimit-file-writes!)
+    (js/setInterval #(.postMessage js/self "keepAlive") (* 1000 25))
     (Comlink/expose obj)))
 
 (comment

+ 1 - 6
src/main/frontend/persist_db/browser.cljs

@@ -60,10 +60,6 @@
                  (pr-str context))
       (notification/show! "Latest change was not saved! Please restart the application." :error))))
 
-(defn- keep-worker-alive!
-  [^Object wrapped-worker]
-  (js/setInterval #(.keep-alive wrapped-worker) (* 25 1000)))
-
 (defn start-db-worker!
   []
   (when-not util/node-test?
@@ -91,8 +87,7 @@
           (p/catch (fn [error]
                      (prn :debug "Can't init SQLite wasm")
                      (js/console.error error)
-                     (notification/show! "It seems that OPFS is not supported on this browser, please upgrade this browser to the latest version or use another browser." :error))))
-      (keep-worker-alive! wrapped-worker))))
+                     (notification/show! "It seems that OPFS is not supported on this browser, please upgrade this browser to the latest version or use another browser." :error)))))))
 
 (defn <export-db!
   [repo data]