Clojure - aguarde

Bloqueia o segmento atual (indefinidamente!) Até que todas as ações despachadas até agora, deste segmento ou agente, para o (s) agente (s) tenham ocorrido. Bloqueará em agentes com falha.

Sintaxe

A seguir está a sintaxe.

(await agentname)

Parameters - 'nomedagente' é o agente para o qual a função de espera deve ser definida.

Return Value - Nenhum.

Exemplo

Um exemplo de como isso é usado é mostrado no programa a seguir.

(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)

Resultado

O programa acima produz a seguinte saída.

0
100

Você pode ver no programa acima que o valor do agente é impresso na tela imediatamente porque a função await irá esperar que Clojure atualize primeiro o valor da função e só então retornará o controle ao programa de chamada.

clojure_agents