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

欢迎!有关如何使用本页面的更多信息,请参阅关于页面。

0
core.async

https://github.com/whilo/async-binding上复现。

`
(def ^:dynamic foo nil)

(defn -main [& args]
(go

(binding [*foo* nil]
  (<! (go 42))
  (println "done.")))

(Thread/sleep 30000))

$ lein uberjar
$ java -jar ...

完成。
线程 "async-dispatch-3" 中异常:java.lang.IllegalStateException: 未匹配的出栈

at clojure.lang.Var.popThreadBindings(Var.java:331)
at clojure.core$pop_thread_bindings.invokeStatic(core.clj:1839)
at clojure.core$pop_thread_bindings.invoke(core.clj:1839)
at async_binding.core$_main$fn__6354$state_machine__4495__auto____6355$fn__6357.invoke(core.clj:8)
at async_binding.core$_main$fn__6354$state_machine__4495__auto____6355.invoke(core.clj:8)
at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:1011)
at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:1010)
at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:1015)
at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:1013)
at clojure.core.async.impl.ioc_macros$take_BANG_$fn__4511.invoke(ioc_macros.clj:1024)
at clojure.core.async.impl.channels.ManyToManyChannel$fn__313$fn__314.invoke(channels.clj:95)
at clojure.lang.AFn.run(AFn.java:22)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

`

4 条回答

0

评论由:hiredman

此问题仅在代码经过AOT编译时才会复现

0

评论由:whilo

是的,我忘记在这里添加了AOT条件,只有在其存储库中。我无法自己更新问题,对吗?我还尝试关闭我提出的一个问题,但没有找到方法来关闭它。

0

评论由:alexmiller

(链接:~whilo) 我已将您添加到适当的组中,以允许您编辑票据。

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