Hi Jim,

send-off is never immediate. It schedules a function for execution  
later. The call to send-off queues execution of the next evaporation,  
and the code continues on.

Agents cannot do more than one thing at once, so the queued  
evaporation cannot possibly happen while this evaporation is sleeping.

Stuart

>
> I was looking at the same code today. My question is slightly
> different. In the code
>
> (defn evaporation [x]
>  (when running
>    (send-off *agent* #'evaporation))
>  (evaporate)
>  (. Thread (sleep evap-sleep-ms))
>  nil)
>
> it looks like the next request (when running (send-off...)) is sent
> immediately, the sleep happens after the evaporate and, more
> confusingly, happens after the next request is sent. Naively, it looks
> like you'd get an infinite number of send-off messages before the
> evaporate and the sleep happened.
>
> What am I misunderstanding?
>
> Jim
> -- 
> Jim Menard, [EMAIL PROTECTED], [EMAIL PROTECTED]
> http://www.io.com/~jimm/
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to