2010-08-03 12 views
6

Quando eseguo il seguente codice, fondamentalmente funziona come intendo farlo, tranne che si blocca dopo che il futuro è finito. Cosa mi manca? Una specie di chiamata "close agent/threads"? Come dovrei farlo?Le promesse future in Clojure mi sono appese

(def name-to-greet (promise)) 

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

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

risposta

7

Futures utilizzare il pool di thread agente, che utilizza i thread non demone, il che significa che Clojure non si spegne fino a che chiami (shutdown-agents). imho, questo è fasullo (vedi my comments here) e ho suggerito che Rich ha detto che prenderà in considerazione il post-1.2 su questo.

+0

Un buon punto: non ci avevo pensato. Grazie, e buono a sapersi! – Isaac

Problemi correlati