Ruediger Berlich
Hi there, just a short question:
http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_management.html#...
lists the following interruption points:
* boost::thread::join() * boost::thread::timed_join() * boost::condition_variable::wait() * boost::condition_variable::timed_wait() * boost::condition_variable_any::wait() * boost::condition_variable_any::timed_wait() * boost::thread::sleep() * boost::this_thread::sleep() * boost::this_thread::interruption_point()
Is (and if so: why is) a lock on a mutex no interruption point ?
Mutex locking is not an interruption point. First off, mutex locking is not a POSIX cancellation point. Though interruption and cancellation are different mechanisms, the list of cancellation points seemed a good place to start with for choosing interruption points. Secondly, this would add overhead to the mutex locking, which I think is undesirable. Thirdly, it would require lots of code that locks mutexes to disable interruption in order to not be interrupted during a critical operation. You can always write an interruptible_mutex that does allow interruption on top of the basic primitives. 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