Fix race condition in win32 signal handling.
Magnus Hagander <magnus@hagander.net>
Fix race condition in win32 signal handling. There was a race condition where the receiving pipe could be closed by the child thread if the main thread was pre-empted before it got a chance to create a new one, and the dispatch thread ran to completion during that time. One symptom of this is that rows in pg_listener could be dropped under heavy load. Analysis and original patch by Radu Ilie, with some small modifications by Magnus Hagander.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/port/win32/signal.c | modified | +43 −5 |