Adam Gundy arg@cyberscience.com writes:
the whole problem is that the wineserver wants to have unique PIDs for each thread so that it can send signals to them, and attach to them for debugging. my patch for the wineserver means that the wineserver doesn't want to send signals for 'normal' operation within a process - when suspending a local thread we defer the thread suspend (currently sending SIGUSR1) back to the client.
Apart from the duplication of the signal mechanism, it also introduces races, since we depend on the client to do part of the suspend code. It means the server state will not necessarily match the actual state of the client thread, which could cause trouble. I'm still not convinced we want that in the standard tree.
killing a local thread could work the same way - it doesn't at the moment, but if you are killing a thread your code is badly broken anyway.
Many Windows apps do that.