Skip to content

Commit 298b126

Browse files
committed
fix browser REPL printing race
1 parent a8d2007 commit 298b126

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/main/cljs/clojure/browser/repl.cljs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
(goog-define PORT 9000)
3232

3333
(def xpc-connection (atom nil))
34+
(def parent-connected? (atom false))
3435
(def print-queue (array))
3536

3637
(defn flush-print-queue! [conn]
@@ -40,8 +41,8 @@
4041

4142
(defn repl-print [data]
4243
(.push print-queue (pr-str data))
43-
(when-let [conn @xpc-connection]
44-
(flush-print-queue! conn)))
44+
(when @parent-connected?
45+
(flush-print-queue! @xpc-connection)))
4546

4647
(set! *print-newline* true)
4748
(set-print-fn! repl-print)
@@ -220,9 +221,11 @@
220221
;; to ack once.
221222
(when-not @connected?
222223
(reset! connected? true)
224+
(reset! parent-connected? true)
223225
(net/transmit repl-connection
224226
:ack-handshake
225-
nil))))
227+
nil)
228+
(flush-print-queue! repl-connection))))
226229
(net/register-service repl-connection
227230
:evaluate-javascript
228231
(fn [js]

0 commit comments

Comments
 (0)