My idea is to alter wine so that it runs on any 100% ish POSIX threading system, aka glibc, and thus offload many tasks to the system library and solve the difficulties for good. This may be difficult / impossible esp. for windows only syscalls, but for those the Winex shm idea may work, with minimal errno hacking. (as the errno can be set by the calling thread ). Any ideas where I can start ?
Stefan
Well, if you look at the wine-cvs list lately, it seems Alexandre has been doing quite a bit of hacking on the threading code, and although I'm not elite enough to understand exactly what's going on, it looks on the surface like the shift to glibc threads is being made.
See: http://www.winehq.com/hypermail/wine-cvs/2003/02/0139.html Log message: Moved LDT selector allocation routines to libwine. Added support for correct locking of all LDT operations. Added separate functions to manipulate the %fs selector, which allows using a global GDT selector on recent Linux kernels.
Care to comment Alexandre? Is extra help needed?