В затруднительном положении, sh застрял - PullRequest
5 голосов
/ 20 февраля 2012

Я пытаюсь использовать sh из clojure.java.shell . В REPL работает нормально, но из скрипта застревает.

(ns tutorial.shell
(:use clojure.java.shell))
   (println (:out (sh "ls" )))

Что мне исправить?

1 Ответ

8 голосов
/ 20 февраля 2012

Проблема в том, что sh использует фьючерсы и программы Clojure, которые используют фьючерсы или агенты, перед тем как выйти, когда им нечего делать, из-за того, как работает какой-то внутренний механизм.

Обойти немноговот, добавьте

(shutdown-agents)

в конце вашего сценария, который завершает эту часть оборудования.(Таким образом, это делает больше, чем обещает имя в том, что фьючерсы также затронуты.)

Обратите внимание, что это не может быть отменено и поэтому не должно использоваться в REPL.

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