
"vicente.botet" <vicente.botet@wanadoo.fr> writes:
Frank Mori Hess <frank.hess@nist.gov> writes:
On Friday 16 May 2008 16:45 pm, vicente.botet wrote:
While writtig a generic library I have needed some lockable traits and concepts to be chacked with BCCL.
If you think that these classes are of general use it will be a pleasure for me, if Anthony accepts, to included them on the Boost.Thread library.
I haven't gone over your proposal in detail, but I for one agree some kind of traits for mutex classes would be useful. I had to do something similar, defining a mutex_properties template class and giving specializations for all the boost.thread mutex types:
http://www.comedi.org/projects/libpoet/boostbook/doc/boostbook/html/poet/mut...
I hadn't thought about it before Vicente's suggestion, but it could be useful.
Hi Frank, Anthony,
Have you taken the time to see my proposal? It will be a pleasure for me to know what do you think.
The current implementation of boost.thread provides the boost::is_mutex_type (in boost/thread/locks.hpp), which is currently used to decide whether lock(a,b) is a call to lock two mutexes or to lock a range. The trait is true if the type provides lock(), unlock() and try_lock() member functions. At some point I will add another trait which includes timed_lock, and another for shared_lock. Recursive vs non-recursive cannot be detected, so would have to be implemented either by specialization of a traits class (as per libpoet) or by a member flag (such as mutex::is_recursive). Anthony -- Anthony Williams | Just Software Solutions Ltd Custom Software Development | http://www.justsoftwaresolutions.co.uk Registered in England, Company Number 5478976. Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL