Ok, here we go again. Taking into account Claudios comments on the previous patch, as well as some more fooling around here of my own, here's a fourth (and final?) one.
If there are no further comments from Claudio or anyone else, I feel this is now ready to be applied. Differences from last version: 1) Per Claudios suggestion, create a "babysitter thread" for each process that waits on the process and signals ourselves. This reduces the amount of code (=good) and most importantly removes all the synchronisation issues (=even better). The only thing left to sync is the signal delivery, and that has alreay been taken care of in previous patches. 2) Make pg_queue_signal() no longer be static. This way we don't have to go through named pipes when signalling ourselves. 3) Remove the redefinition of select() again. This also means that the select.c file previously incouded should *NOT* be included any more. See separate mail to hackers-win32 on this issue. 4) Fix Claudios wrong-assignment error in win32_removeChild. Also improve an error message in win32_waitpid. Again, the preivously attached select.c file should *NOT* be included. //Magnus ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])