<br><br>
<div><span class="gmail_quote">2006/11/10, Mike McCormack &lt;<a href="mailto:mike@codeweavers.com">mike@codeweavers.com</a>&gt;:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br>Eric Pouech wrote:<br>&gt; IIRC, the issue in this code is that you access in _SAFE macro the next<br>
&gt; field in the current cursor *after* the current cursor has been freed<br>&gt; the issue is not that the next item has been freed while itering on the<br>&gt; current cursor<br>&gt; (this was at least the issue I had)
<br><br>It looks like kill_thread can recurse&nbsp;&nbsp;if another thread is waiting on<br>the current thread we're killing.<br><br>wake_up -&gt; wake_thread -&gt; send_thread_wakeup -&gt; kill_thread<br><br>If the waiting thread is in the current process, and it's later in the
<br>list, I'm not sure anything stops it from being free'd.</blockquote>
<div>&nbsp;</div>
<div>well, the kill_thread in that case in only done when the waiting thread also died while waiting (ie has been killed by some other way) (in normal cases, the wait operation on the waiting side would just return an error code)
</div>
<div>the I'm not still conviced this path is actually executed in that case</div>
<div>what lead you to write the patch ?<br>A+<br clear="all"><br>-- <br>Eric Pouech </div></div>