Boost C++ Libraries: Ticket #2067: thread_group::join_all can't be interrupted using thread_group::interrupt_all https://svn.boost.org/trac10/ticket/2067 <p> In 1.35.0 and the trunk as of <a class="changeset" href="https://svn.boost.org/trac10/changeset/47043" title="Finalize Directory and File name requirements for 1.36.0. Provide ...">r47043</a>, if you're blocked in thread_group::join_all, a subsequent thread_group::interrupt_all is ineffective. It blocks trying to acquire the mutex, and thus never calls interrupt on the underlying threads. </p> <p> This looks like it could be fixed by switching to a shared_lock. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/2067 Trac 1.4.3 eb@… Thu, 03 Jul 2008 23:54:54 GMT attachment set https://svn.boost.org/trac10/ticket/2067 https://svn.boost.org/trac10/ticket/2067 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">2067.patch</span> </li> </ul> <p> patch for ticket 2067 </p> Ticket mheyman@… Thu, 30 Apr 2009 13:41:34 GMT attachment set https://svn.boost.org/trac10/ticket/2067 https://svn.boost.org/trac10/ticket/2067 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">2067.1.patch</span> </li> </ul> <p> thread_group releases mutex while calling join() </p> Ticket anonymous Thu, 30 Apr 2009 13:47:09 GMT <link>https://svn.boost.org/trac10/ticket/2067#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2067#comment:1</guid> <description> <p> This bug stems from join_all() holding a mutex while giving control to another thread. 2067.1.patch changes this behavior. The 2067.patch does this too but in an unsafe way - the list of threads can change while the list gets iterated. A better fix might combine the two ideas - having shared access for read-only (keeping exclusive access for list modifying routines), _and_ releasing the mutex while calling join(). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Anthony Williams</dc:creator> <pubDate>Tue, 27 Oct 2009 09:46:43 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/2067#comment:2 https://svn.boost.org/trac10/ticket/2067#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> Fixed in trunk, commit 57169 </p> Ticket