Clojure - espera

Bloquea el hilo actual (¡indefinidamente!) Hasta que se hayan realizado todas las acciones despachadas hasta el momento, desde este hilo o agente, al agente (s). Bloqueará a los agentes fallidos.

Sintaxis

A continuación se muestra la sintaxis.

(await agentname)

Parameters - 'agentname' es el agente para el que se debe establecer la función de espera.

Return Value - Ninguno.

Ejemplo

En el siguiente programa se muestra un ejemplo de cómo se usa.

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

Salida

El programa anterior produce la siguiente salida.

0
100

Puede ver en el programa anterior que el valor del agente se imprime en la pantalla inmediatamente porque la función de espera esperará a que Clojure actualice primero el valor de la función y solo entonces devolverá el control al programa de llamada.

clojure_agents