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 点赞

By: hiredman

此问题仅在代码 aot 编译时重现

0 点赞

By: whilo

是的,我漏掉了在这里添加 AOT 条件,只在你提供的仓库中做到了。我可以自己更新问题吗?我也试过关闭我提出的另一个问题,但找不到关闭它的方法。

0 点赞

By: alexmiller

(link: ~whilo) 我已将其添加到适当的组中,以便您可编辑票据。

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