2024 Clojure状态调查中分享您的想法!

欢迎!请查看关于页面了解更多关于这个站点的工作信息。

+2
REPL
当传递给{{clojure.core.server/remote-prepl}}的in-reader达到流末尾时,会尝试关闭套接字读取器。然而,由于(主要)套接字仍在被读取,这会阻塞主线程。

{code:none}
$ clj -J-Dclojure.server.jvm="{:port 5555 :accept clojure.core.server/io-prepl}" -r
Clojure 1.10.0
user=> (clojure.core.server/remote-prepl "127.0.0.1" 5555 *in* prn)
;; 如预期
1
{:tag :ret, :val 1, :ns "user", :ms 0, :form "1"}
^D ;; 挂起 - ^C 需要 结束进程


在这种情况下,我期望{{^D}}出现initial repl,类似于{{(clojure.core.server/io-prepl)}}的行为。

什么行得通
{code:none}
$ clj -J-Dclojure.server.jvm="{:port 5555 :accept clojure.core.server/io-prepl}" -r
Clojure 1.10.0
user=> (clojure.core.server/remote-prepl "127.0.0.1" 5555 *in* prn)
:repl/quit
^D
nil
user=> _


但是,从代码中看,这并不是预期能够终止prepl的方式。

1个答案

0
参考:https://clojure.atlassian.net/browse/CLJ-2509(由alex+import报告)
...