Clojure: aspetta

Blocca il thread corrente (indefinitamente!) Finché tutte le azioni inviate fino a quel momento, da questo thread o agente, agli agenti non si sono verificate. Blocca sugli agenti falliti.

Sintassi

Di seguito è riportata la sintassi.

(await agentname)

Parameters - "agentname" è l'agente per cui deve essere impostata la funzione di attesa.

Return Value - Nessuno.

Esempio

Un esempio di come viene utilizzato è mostrato nel seguente programma.

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter)
   
   (send-off counter + 100)
   (await counter)
   (println @counter)
   
   (shutdown-agents))
(Example)

Produzione

Il programma precedente produce il seguente output.

0
100

Puoi vedere dal programma sopra che il valore dell'agente viene stampato immediatamente sullo schermo perché la funzione di attesa attenderà che Clojure aggiorni prima il valore della funzione e solo allora restituirà il controllo al programma chiamante.

clojure_agents