mfikes / ambly

ClojureScript REPL into embedded JavaScriptCore
http://ambly.fikesfarm.com
Eclipse Public License 1.0
541 stars 21 forks source link

Can't reconnect after `:cljs/quit` owing to `(shutdown-agents)` #40

Closed mfikes closed 9 years ago

mfikes commented 9 years ago

With the change for #26, which involved (shutdown-agents), if you run the REPL manually, then after :cljs/quit you can't reconnect.

If using lein trampoline run -m clojure.main you will get the following when trying to choose a device to connect to,

RejectedExecutionException Task java.util.concurrent.FutureTask@324e8baa rejected from java.util.concurrent.ThreadPoolExecutor@14df5253[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 5]  java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution (ThreadPoolExecutor.java:2047)

and if you are running plain lein repl you will get this when trying to execute (repl/repl* ...)

SocketException The transport's socket appears to have lost its connection to the nREPL server
    clojure.tools.nrepl.transport/bencode/fn--5570/fn--5571 (transport.clj:95)
    clojure.tools.nrepl.transport/bencode/fn--5570 (transport.clj:95)
    clojure.tools.nrepl.transport/fn-transport/fn--5544 (transport.clj:42)
    clojure.core/binding-conveyor-fn/fn--4145 (core.clj:1910)
    java.util.concurrent.FutureTask.run (FutureTask.java:266)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
    java.lang.Thread.run (Thread.java:745)

If you remove the call to (shutdown-agents) then both of the errors above go away and you can reconnect.