Fix race condition in win32 signal handling.

Magnus Hagander <magnus@hagander.net>

Commit: e00881bd738aec4df3d374d63c0aac80ecac02af
Author: Magnus Hagander <magnus@hagander.net>
Date: 2010-01-31T17:16:27Z
Releases: 8.3.10
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

PathChange+/−
src/backend/port/win32/signal.c modified +43 −5