I like that way of thinking, Timothy!
Thomas: it's very specifically two separate channels; on the client
side, code puts data on a channel and additional client code (in a
library) takes data off the channel and handles the client/server
communication; on the server side, a library reads data from the
client/server connection and puts it on a channel, and your own server
side code takes data from that channel. And the same thing in reverse.
The point is that each side is isolated and core.async is used as a
way to interact with a library that consumes data (and sends it
somewhere) and produces data (that it reads from somewhere). The
application code "doesn't care" about the client/server bridge -
that's the library's problem. Cedric's right about connection loss etc
but that's all part of what the library deals with - if it can't
consume from a channel (because it can't send data over the wire),
that's the same as any other consumer failing to take data from a
channel that you supply.
Sean
> "One of the main causes of the fall of the Roman Empire was that-lacking
> zero-they had no way to indicate successful termination of their C
> programs."
> (Robert Firth)
>
Sean A Corfield -- (904) 302-SEAN
An Architect's View --
http://corfield.org/
World Singles, LLC. --
http://worldsingles.com/
"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)