Eric Pouech wrote:
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) the I'm not still conviced this path is actually executed in that case
When the process is terminating because the user pressed ^C, the waiting thread will already be dead, so send_thread_wakeup will kill it.
what lead you to write the patch ?
valgrind reported that wineserver accessed free'd memory.
On IRC, Alexandre suggested the fix is to change kill_process() to keep killing the first thread in the list until there's no more threads.
Mike