У меня есть несколько потоков, возвращенных core.async/thread, вовлеченных в какой-то процесс, который я собираюсь закрыть. Я не закрываю всю свою программу, только эти потоки. Как я могу завершить потоки?
Метод .stop класса Java Thread устарел, но я был бы рад его использовать, за исключением того, что core.async/thread возвращает не Thread, а ManyToManyChannel:
user=> (clojure.core.async/thread)
#object[clojure.core.async.impl.channels.ManyToManyChannel 0x780e97c0
"clojure.core.async.impl.channels.ManyToManyChannel@780e97c0"]
user=> (type *1)
clojure.core.async.impl.channels.ManyToManyChannel
Я не нашел никакой документации по ManyToManyChannel. Звучит как странное название типа потока, так что здесь может быть что-то элементарное, чего я не понимаю. Но вот мой нынешний наивный, бессмысленно звучащий вопрос: как убить ManyToManyChannel?
clojure.repl/thread-stopper, похоже, не влияет на ManyToManyChannels.