Skip to content

Commit 8baf96d

Browse files
committed
dont block main thread when running handle launch
1 parent 5606821 commit 8baf96d

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

src/mobdap/handler.clj

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -307,24 +307,25 @@
307307
(let [server-channel (debug-server/run-server! (int port) to-handler)]
308308
(log/info "Waiting for server to finish setup...")
309309

310-
(loop [] ; TODO: this should not be blocking...
311-
(let [response (<!! to-handler)]
312-
(if (= :setup-done (:cmd response))
313-
nil
314-
(recur))))
315-
316-
(log/info "Finished server setup")
317-
318-
(go-loop []
319-
(when-let [command (<!! to-handler)]
320-
(try
321-
(handle-debug-server-command @go-handler command)
322-
(catch Throwable t
323-
(log/error "Message from debug server handler" (pst-str (parse-exception t))))))
324-
(recur))
325-
326-
(adapter/send-message! adapter (success (:seq message) "launch" nil))
327-
(adapter/send-message! adapter (event "initialized"))
310+
(go-loop [setup-done false]
311+
(cond
312+
(not setup-done)
313+
(let [response (<!! to-handler)]
314+
(if (= :setup-done (:cmd response))
315+
(do
316+
(adapter/send-message! adapter (success (:seq message) "launch" nil))
317+
(adapter/send-message! adapter (event "initialized"))
318+
(log/info "Finished server setup")
319+
(recur true))
320+
(recur false)))
321+
322+
:else
323+
(do (when-let [command (<!! to-handler)]
324+
(try
325+
(handle-debug-server-command @go-handler command)
326+
(catch Throwable t
327+
(log/error "Message from debug server handler" (pst-str (parse-exception t))))))
328+
(recur true))))
328329

329330
(-> handler
330331
(assoc :root-dir root-dir)

0 commit comments

Comments
 (0)