Boost logo

Boost :

From: Yigong Liu (yigongliu_at_[hidden])
Date: 2007-06-11 02:09:22

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
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:

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

Any suggestions?


Boost list run by bdawes at, gregod at, cpdaniel at, john at