Будущие обещания в Clojure висят на мне - PullRequest
6 голосов
/ 03 августа 2010

Когда я запускаю следующий код, он в основном работает так, как я намереваюсь, за исключением того, что он зависает после завершения будущего.Чего мне не хватает - какой-то вызов "близких агентов / тем"?Как мне это сделать?

(def name-to-greet (promise))

(future
    (println "Hello," @name-to-greet))

(print "What is your name? ")
(flush)
(deliver name-to-greet (read-line))

1 Ответ

7 голосов
/ 03 августа 2010

Futures использует пул потоков агента, который использует потоки, не являющиеся демонами, что означает, что Clojure не завершит работу, пока вы не вызовете (shutdown-agents) . Имхо, это подделка (см. мои комментарии здесь ), и я высказал предположение, что Рич сказал, что он рассмотрит пост-1.2 вокруг этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...