[interprocess] 1.40 compile error
Hi, I just started to port my application from boost 1.37 to 1.40 in order to get the remove() methods work in an appropriate way. Problem is now that the compiler is complaining about my use of named_condition.wait(lock). Here is what I get: ../boost_1_40_0/boost/interprocess/sync/named_condition.hpp|156|error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>' ../boost_1_40_0/boost/interprocess/sync/named_condition.hpp|254|instantiated from 'void boost::interprocess::named_condition::wait(L&) [with L = boost::interprocess::scoped_lockboost::interprocess::named_upgradable_mutex]'| Thank you in advance for any hint.
Moritz escribió:
Hi,
I just started to port my application from boost 1.37 to 1.40 in order to get the remove() methods work in an appropriate way.
Problem is now that the compiler is complaining about my use of named_condition.wait(lock).
Are you using a named_mutex with named_condition? named_condition does
not work with interprocess_mutexeses. I think the line says it:
//named_condition only works with named_mutex
BOOST_STATIC_ASSERT((detail::is_convertible
Moritz escribió:
Ion Gaztañaga wrote:
Are you using a named_mutex with named_condition? named_condition does not work with interprocess_mutexeses. I think the line says it:
I am using it with:
sharable_lock
lock(mtx) named_condition.wait(lock)
It should be named_mutex. Condition variables are only compatible with plain mutexes, not sharable or upgradable mutexes. That assertion was added to verify this at compile time.
Best regards, Moritz
Best, Ion
participants (2)
-
Ion Gaztañaga
-
Moritz