Boost logo

Boost :

Subject: [boost] Request for interest in the new Synchro library
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2009-02-16 19:54:29


I would like to know if the Boost community is interested in the Synchro library. Of course there is a lot of work to do, but I think that there is enough material to start a discussion on the approach.

I'd appreciate it if people could take a look, test it on their compiler and give me some feedback.

The library is available at Boost Sandbox: and
Boost Vault:
that iIncludes every thing on the Sandbox + Html documentation
Some examples use Boost.Interthreads also (available on the vault and the sandbox).

This library is a compilation of what I have found in the literature not yet present in Boost. My main concern has been to boostify all these ideas in a coherent way. Next follows an overview of the library features:

Boost.Synchro provides:

    * A uniform usage of Boost.Thread and Boost.Interprocess synchronization mechanisms based on lockables(mutexes) concepts and locker(guards) concepts.
          o lockables traits and lock generators,
          o lock adapters of the Boost.Thread and Boost.Interprocess lockable models,
          o locker adapters of the Boost.Thread and Boost.Interprocess lockers models,
          o complete them with the corresponding models for single-threaded programs: null_mutex and null_condition classes,
          o locking families,
          o semaphore,
          o condition_lockable lock which put together a lock and its associated conditions.
    * A coherent exception based timed lock approach,
    * A rich palette of lockers as
          o strict_locker, nested_strict_locker,
          o condition_locker,
          o reverse_locker, nested_reverse_locker,
          o locking_ptr, on_dereference_locking_ptr,
          o externally_locked,
    * A polymorphic lockable hierarchy.
    * High-level abstractions for handling more complicated synchronization problems, including
          o monitor for guaranteeing exclusive access to an object, and
          o a so-called rendezvous mechanism for handling direct communication between objects concurrent_components via ports using an accept-synchronize protocol based on the design of the concurrency library in the Beta language.

On going work
    * array_locker and tuple_locker locker containers.
    * A complement to the already present in Boost.Thread lock, try_lock free functions:
          o lock_until, lock_for, try_lock_until, try_lock_for

Best regrads,
Vicente Juan Botet Escribá

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