id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 3735,thread_group::interrupt_all() is unreliable,stoney@…,Anthony Williams,"In boost 1_41_0, thread_group::interrupt_all() occasionally fails to interrupt some threads due to a race condition when the threads are waiting on a condition_variable. The solution seems to be to have the interrupter lock the condition_variable's mutex before calling thread::interrupt(). While the fundamental problem is in thread::interrupt(), thread_group::interrupt_all() is a good way to expose the problem, since it happens only when multiple threads waiting on the same condition_variable are being interrupted in quick succession. A workaround is to have the object owning the condition_variable lock the associated mutex before calling thread_group::interrupt_all(). The attached example demonstrates both the problem and the workaround.",Bugs,closed,Boost 1.42.0,thread,Boost 1.41.0,Showstopper,duplicate,thread mutex interrupt race,