
Hello fellow boosters, I just uploaded to boost vault (under "concurrent programming") a new release of "Join" asynchronous concurrency library with changes based on initial feedback from the list. For people who are not familiar with "Join", a short description is as following: Join is an asynchronous, message based C++ concurrency library based on join calculus. It is applicable both to multi-threaded applications and to the orchestration of asynchronous, event-based applications. It follows Comega's design and implementation and builds with Boost facilities. It provides a high level concurrency API with asynchronous methods, synchronous methods, and chords which are "join-patterns" defining the synchronization, asynchrony, and concurrency. The major changes from last release are code related to chord_override and chord_remove. Also two tutorials are added to explore the usage of Join: 1> implementing thread safe event dispatching using Join and 2> implementing data parallel algorithms (parallel loop and map-reduce) using Join, which is helpful for programming today's multi-core machines. More info can be found: Source code: http://sourceforge.net/project/showfiles.php?group_id=157583 Documentation: http://channel.sourceforge.net/boost_join/libs/join/doc/boost_join_design.ht... Website: http://channel.sourceforge.net I need some advice with a specific implementation question with Join. The semantics of async / synch methods and actor base classes require them to be noncopyable and nonassignable, since they contain state info about on-going messaging. Normally letting them inherit from boost::noncopyable can solve it. However one important feature of Boost.Join is to allow applications to create a vector of async / synch methods which will be prohibited by noncopyable. Any suggestions? Thanks Yigong