Boost C++ Libraries: Ticket #1449: thread_specific_ptr causing crash in wave tests https://svn.boost.org/trac10/ticket/1449 <p> testwave crashes under VC++ 2008 (9.0) at line 30 of tss.hpp: </p> <pre class="wiki">&gt; testwave.exe!boost::thread_specific_ptr&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; *&gt;::cleanup(phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * * data=0x0012fedc) Line 30 + 0xb bytes C++ </pre><p> The error is: </p> <pre class="wiki">Unhandled exception at 0x0068b924 in testwave.exe: 0xC0000005: Access violation writing location 0xde3840a0 </pre><p> The local variables are: </p> <pre class="wiki">- data 0x0012fedc phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * * - 0x0012ff08 {save=0x1023bab5 frame={...} } phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * - phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; {a={...} } phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; phoenix::tuple_base&lt;phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; {...} phoenix::tuple_base&lt;phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; + a {type=1244944 value={...} valid=1245020 } boost::wave::grammars::closures::closure_value - save 0x1023bab5 {save=0x458904c4 frame={...} } phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * + phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; {a={...} } phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; - save 0x458904c4 {save=??? frame=??? } phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * - phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; {a={...} } phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; phoenix::tuple_base&lt;phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; {...} phoenix::tuple_base&lt;phoenix::tuple&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; - a {type=??? value={...} valid=??? } boost::wave::grammars::closures::closure_value type CXX0030: Error: expression cannot be evaluated - value {i=??? ui=??? b=??? } boost::wave::grammars::closures::closure_value::&lt;unnamed-type-value&gt; i CXX0030: Error: expression cannot be evaluated ui CXX0030: Error: expression cannot be evaluated b CXX0030: Error: expression cannot be evaluated valid CXX0030: Error: expression cannot be evaluated save CXX0030: Error: expression cannot be evaluated - frame phoenix::impl::closure_frame_holder&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; &gt; &amp; tsp_frame CXX0030: Error: expression cannot be evaluated - frame {tsp_frame={...} } phoenix::impl::closure_frame_holder&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; &gt; &amp; - tsp_frame {func=??? } boost::thread_specific_ptr&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; *&gt; func CXX0030: Error: expression cannot be evaluated - frame {tsp_frame={...} } phoenix::impl::closure_frame_holder&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; &gt; &amp; - tsp_frame {func=??? } boost::thread_specific_ptr&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; *&gt; func CXX0030: Error: expression cannot be evaluated func 0xeb04c483 void (phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * *)* - this 0x004ca64c {func=0xeb04c483 } const boost::thread_specific_ptr&lt;phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; *&gt; * const func 0xeb04c483 void (phoenix::closure_frame&lt;phoenix::closure&lt;boost::wave::grammars::closures::closure_value,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t,phoenix::nil_t&gt; &gt; * *)* </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1449 Trac 1.4.3 jrp at dial dot pipex dot com Fri, 16 Nov 2007 23:27:58 GMT <link>https://svn.boost.org/trac10/ticket/1449#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1449#comment:1</guid> <description> <p> This may be a threads issue, rather than a waves issue. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Hartmut Kaiser</dc:creator> <pubDate>Sat, 17 Nov 2007 01:11:30 GMT</pubDate> <title>owner, component changed https://svn.boost.org/trac10/ticket/1449#comment:2 https://svn.boost.org/trac10/ticket/1449#comment:2 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Hartmut Kaiser</span> to <span class="trac-author">Anthony Williams</span> </li> <li><strong>component</strong> <span class="trac-field-old">wave</span> → <span class="trac-field-new">thread</span> </li> </ul> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1449#comment:1" title="Comment 1">jrp at dial dot pipex dot com</a>: </p> <blockquote class="citation"> <p> This may be a threads issue, rather than a waves issue. </p> </blockquote> <p> Yes it is a thread issue and has been fixed already by Anthony (at least he asked me to verify a patch). </p> <p> I'm reassigning this to him. </p> Ticket Anthony Williams Wed, 28 Nov 2007 17:16:00 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/1449#comment:3 https://svn.boost.org/trac10/ticket/1449#comment:3 <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> Ticket Anthony Williams Wed, 28 Nov 2007 17:16:33 GMT summary changed https://svn.boost.org/trac10/ticket/1449#comment:4 https://svn.boost.org/trac10/ticket/1449#comment:4 <ul> <li><strong>summary</strong> <span class="trac-field-old">jrp</span> → <span class="trac-field-new">thread_specific_ptr causing crash in wave tests</span> </li> </ul> Ticket