Adam Gundy arg@cyberscience.com writes:
which part of the signal stuff won't work? all that has happened is that the "kill( <pid>, SIGUSR1 )" has moved from the wineserver to the client (for 'local' threads). I thought that the NPTL stuff still wanted a PID-per-thread model just so it can do this?
No you can't use kill, you have to use pthread_kill, but then it will break the non NPTL case. And on Solaris you have to do some lwp stuff instead. Basically there is quite a bit of complexity that the server takes care of that you would have to replicate in the client.
OTOH if you can *really* switch to a pure pthreads model, that should be no problem since valgrind comes with a pthread library...
Pure pthreads is not possible, we need to support inter-process signals and things like that.
as to making valgrind use real threads, I think that is a BIG job, and unlikely to happen, since the only thing that wants 'real' threads is WINE - everything else is happy with pthreads.
Well, sending a signal to a thread from another process is standard Linux functionality, so I'd argue that valgrind should support it one way or another.