Boost C++ Libraries: Ticket #3923: ASIO calls copy-constructor for handler object from another thread https://svn.boost.org/trac10/ticket/3923 <p> win_iocp_socket_service use select_reactor with <a class="missing wiki">OwnThread</a>=true for performing connect operations. While finish connect op, handler copy-constructed on the stack (reactor_op_queue::do_complete/do_destroy), but constructor invoked from another thread (internal thread of select_reactor). That means, that if our handler have specific copy-constructor (for example, we use intrusive_ptr for holding this in bind_t) we need to synchronize it with main thread (or use interlocked functions). </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/3923 Trac 1.4.3 chris_kohlhoff Wed, 10 Mar 2010 09:32:30 GMT <link>https://svn.boost.org/trac10/ticket/3923#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/3923#comment:1</guid> <description> <p> This should have been addressed by changes I recently checked into the SVN trunk. If possible, can you please test and report any problems. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>chris_kohlhoff</dc:creator> <pubDate>Thu, 18 Mar 2010 01:07:01 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/3923#comment:2 https://svn.boost.org/trac10/ticket/3923#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> The changes have been merged to the release branch in changeset <a class="changeset" href="https://svn.boost.org/trac10/changeset/60680" title="Merge reworked implementation from trunk. ">[60680]</a>. </p> Ticket