<html><body>
<p><tt>Gustaf Neumann &lt;neumann@wu-wien.ac.at&gt; wrote on 08/16/2006 03:06:18 AM:<br>
<br>
&gt; Scott Gargash schrieb:<br>
&gt; &gt;<br>
&gt; &gt; So I inserted my own exitHandler and that works in a single thread, <br>
&gt; &gt; but when I have multiple threads, things get confused. <br>
&gt; &gt;<br>
&gt; You have not told us, what &quot;confused&quot; means (other than: &quot;i get an <br>
&gt; error&quot;) since your<br>
&gt; example works for me.<br>
</tt><br>
<tt>Sorry, I omitted that. &nbsp;My example gives the following error:</tt><br>
<br>
<tt>Error from thread tid00000C20</tt><br>
<tt>invalid command name &quot;tclPkgUnknown&quot;</tt><br>
<tt>&nbsp; &nbsp; while executing</tt><br>
<tt>&quot;tclPkgUnknown XOTcl {}&quot;</tt><br>
<tt>&nbsp; &nbsp; (&quot;package unknown&quot; script)</tt><br>
<tt>&nbsp; &nbsp; invoked from within</tt><br>
<tt>&quot;package require XOTcl&quot;</tt><br>
<tt>User defined exit handler contains errors!</tt><br>
<tt>Error in line 2: target thread died</tt><br>
<tt>Execution interrupted.</tt><br>
<br>
<br>
<tt>My actual code doesn't give any consistent behavior. &nbsp;Sometimes it sort of works, sometimes it generates corrupt data, and sometimes it dumps core.</tt><br>
<tt><br>
&gt; If you have multiple threads, and you want to control the order, in <br>
&gt; which the threads exit<br>
&gt; (and in which their exit handlers are called), you have to do this on <br>
&gt; your own<br>
&gt; as well (not using &quot;exit&quot;, but your own shutdown command). Be aware of,<br>
&gt; that tcl tries to shutdown your threads on exit as well.<br>
</tt><br>
<br>
<tt>A ha, you've describe my problem (and also the solution I found). &nbsp;I have exit handlers in all the threads, and I get inconsistent behavior. &nbsp;I wound up overriding exit to get things to exit in a defined manner.</tt><br>
<br>
<tt>It was in the process of trying to reduce it down to a simple test case that I found the problem (described above) on WinXP with just a single exit handler. &nbsp;Now, perhaps that's an real problem of some sort also, but it sounds like I need to continue overriding &quot;exit&quot; to get the desired behavior in the real codebase.</tt><br>
<br>
<tt>        Scott</tt><br>
<br>
<tt>&nbsp;<br>
</tt></body></html>