This patch simplified Win32 signaling code per discussion in hackers. In
this implementation, each process will have a named (by its pid) mutex,
named shared memory area and named event in global namespace. The process
is
sending/receiving signals as the following:
(*) the process who kill the signal:
- Grab the named mutex, set signal bit in target process's shared memory
area and SetEvent(), then it is done;
(*) the process who should receive the signal:
- the main thread of this process could be awakened by the event from
waiting status(like semop()) or CHECK_FOR_INTERRUPTS() actively; -- there
is
no other threads of the process;
Details could be found in this thread and follows:
http://archives.postgresql.org/pgsql-hackers/2005-05/msg01388.php
Regards,
Qingqing