Boost C++ Libraries: Ticket #8533: signal garbage collection of slot objects https://svn.boost.org/trac10/ticket/8533 <p> Some people find the garbage collection scheme used by signals to destroy their disconnected slot surprising, in that slot objects inside the signal are not necessarily destroyed promptly upon their disconnection. An alternative scheme would be to reference count the use of each slot object and destroy it when it is disconnected and no longer needed by any ongoing signal invocation. Care would need to be taken to avoid a heavy performance impact (we probably wouldn't want to add an atomic reference count, but rather rely on the existing signal mutex for thread saftey). </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/8533 Trac 1.4.3 julien.puydt@… Fri, 27 Jun 2014 19:23:12 GMT version changed https://svn.boost.org/trac10/ticket/8533#comment:1 https://svn.boost.org/trac10/ticket/8533#comment:1 <ul> <li><strong>version</strong> <span class="trac-field-old">Boost 1.52.0</span> → <span class="trac-field-new">Boost 1.55.0</span> </li> </ul> <p> It's still the case with 1.55, and is annoying when one tries to reclaim memory as soon as possible and detect issues with memory management at fixed points. </p> <p> Is there a workaround? </p> Ticket dsandras@… Thu, 12 Feb 2015 09:02:50 GMT <link>https://svn.boost.org/trac10/ticket/8533#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8533#comment:2</guid> <description> <p> We are really annoyed by this problem in the Ekiga project. What would you suggest ? </p> </description> <category>Ticket</category> </item> <item> <author>fmh6jj@…</author> <pubDate>Thu, 12 Feb 2015 16:29:10 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8533#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8533#comment:3</guid> <description> <p> I'll try to get this change done sometime in the next week </p> </description> <category>Ticket</category> </item> <item> <author>dsandras@…</author> <pubDate>Thu, 12 Feb 2015 16:34:09 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8533#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8533#comment:4</guid> <description> <p> Thanks ! </p> <p> What can we do to force the cleanup to happen until then? </p> <p> Actually, when objects are destroyed when the process exits, we see all destructors are not called correctly because of this scheme. </p> </description> <category>Ticket</category> </item> <item> <author>fmh6jj@…</author> <pubDate>Thu, 12 Feb 2015 16:50:06 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8533#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8533#comment:5</guid> <description> <p> If you destroy a signal, all the slot objects it contains are also destroyed (unless it is concurrently being invoked when it is destructed, in which case the signal's internals are destructed when invocation completes). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Frank Mori Hess</dc:creator> <pubDate>Mon, 13 Apr 2015 01:47:22 GMT</pubDate> <title>status, milestone changed https://svn.boost.org/trac10/ticket/8533#comment:6 https://svn.boost.org/trac10/ticket/8533#comment:6 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.59.0</span> </li> </ul> <p> Fixed on develop branch </p> Ticket Frank Mori Hess Sat, 25 Apr 2015 17:15:52 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/8533#comment:7 https://svn.boost.org/trac10/ticket/8533#comment:7 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket