Steven Watanabe wrote:
Mark Reginald James wrote:
I haven't been able to discover the meaning of "unspecified" in things like scoped_lock constructor parameters:
http://www.boost.org/doc/libs/1_36_0/doc/html/boost/interprocess/scoped_lock...
I'm trying to lock a scoped lock only if the mutex is not null. It looks like I need to use one of these "unspecified" constructors to assign the mutex but not lock it, so that I can then lock it in an "if" statement if the mutex is not null.
The argument you want is boost::interprocess::defer_lock, I think.
It look like the doxygen/boostbook needs some tweaking here.
Many thanks Steven. It looks like boost::interprocess::defer_lock or boost::defer_lock was what I needed. This was in the "detail" namespace at some stage, but that may now be obsolete. Because the older version of the Boost library I am using does not support scoped_lock with no constructor arguments, instead of a deferred lock I had to use a smart_pointer to an immediate lock, allowing the lock to be both conditionally created and auto-released.