|
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
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.html
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk