On Mar 14, 12:20 pm, "
christo...@cgrand.net"
The first thing to remember is that the second argument to send is a
regular fn object. It might be created in place, it might have been
created prior. The behavior needs to be the same in either case.
Second, if there was child-thread binding inheritance, it would occur
on thread creation. But the threads created for agents might a)
already exist, or b) be created outside the dynamic scope of the
action send.
Third, there might be many dynamic bindings, and an action might not
utilize any of them. Copying them in all cases would be significant
overhead.
In any case, it is possible to create an action with precisely the set
of bound vars you want:
(send a (fn [av] (binding [b "bound"] (println b) (flush))))
If this becomes a common thing, a little macrology could make it
painless.
Rich