
Thanks for the info. 1. Is/isn't it possible to merge the functionality of Join and Channel. and just have the Channel lib. ie. why 2 separate libraries? 2. Are you going to propose one or both libs for Boost review, if so when? 3. Channel could play a role in a Boost.Logging library, I think so? Thanks Shams -- "Yigong Liu" <yigongliu@gmail.com> wrote in message news:215932780705202227n5d79c7a0pa3c1a28768ed7a9f@mail.gmail.com...
What does it bring that Channel does not?
Hello,
Here are a few more points to clarify the difference between Channel and Join:
Channel's major purpose is to support asynchronous message passing thru "name spaces". Message senders bind to "names" in name space to send and receivers bind to "names" to receive. Name matching rules decide which senders and receivers will bind together and communicate. We could use linear / hierarchical / associative name spaces for different applications.
Join intends to be a rather complete implementation of Cw asynchronous concurrency features. Its counterpart in C# is "Joins" library ( http://research.microsoft.com/~crusso/joins/index.htm).
Channel's focus is to support transparent distributed message passing. Senders bind to names to send while the receivers could be threads in different processes or machines which bind to the same (matching) names to receive. Both senders and receivers dont need to be aware whether their communicating peers are local or remote.
Join more focus on giving a good treatment of "local" orchestration of both async and synch concurrent activities. Join's primitives (async / synch methods and chords) are more "fundamental", in that we could use them to implement other concurrency idioms (such as semaphores, futures and active objects),
In Channel, "join-pattern" is used as one of messaging coordination arbiters (choice and join) of pull dispatcher, one of many dispatching algorithms (including synchronous broadcast, round robin ...). It implements mostly the asynchronous part of Cw (thru two phase commit), in the same style as CCR ( http://channel9.msdn.com/wiki/default.aspx/Channel9.ConcurrencyRuntime).
Compared with Channel, Join is a fairly small and simple library and header only.
For more information, please refer to http://channel.sourceforge.net.
Regards, Yigong _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost