|
6 | 6 | * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group |
7 | 7 | * |
8 | 8 | * IDENTIFICATION |
9 | | - * $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.5 2004/08/30 02:54:38 momjian Exp $ |
| 9 | + * $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.6 2004/09/07 14:31:42 tgl Exp $ |
10 | 10 | * |
11 | 11 | *------------------------------------------------------------------------- |
12 | 12 | */ |
@@ -93,7 +93,7 @@ TranslateSocketError(void) |
93 | 93 | staticint |
94 | 94 | pgwin32_poll_signals(void) |
95 | 95 | { |
96 | | -if (WaitForSingleObject(pgwin32_signal_event,0)==WAIT_OBJECT_0) |
| 96 | +if (WaitForSingleObjectEx(pgwin32_signal_event,0, TRUE)==WAIT_OBJECT_0) |
97 | 97 | { |
98 | 98 | pgwin32_dispatch_queued_signals(); |
99 | 99 | errno=EINTR; |
@@ -130,9 +130,9 @@ pgwin32_waitforsinglesocket(SOCKET s, int what) |
130 | 130 |
|
131 | 131 | events[0]=pgwin32_signal_event; |
132 | 132 | events[1]=waitevent; |
133 | | -r=WaitForMultipleObjects(2,events, FALSE,INFINITE); |
| 133 | +r=WaitForMultipleObjectsEx(2,events, FALSE,INFINITE, TRUE); |
134 | 134 |
|
135 | | -if (r==WAIT_OBJECT_0) |
| 135 | +if (r==WAIT_OBJECT_0||r==WAIT_IO_COMPLETION) |
136 | 136 | { |
137 | 137 | pgwin32_dispatch_queued_signals(); |
138 | 138 | errno=EINTR; |
@@ -419,8 +419,8 @@ pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, c |
419 | 419 | } |
420 | 420 |
|
421 | 421 | events[numevents]=pgwin32_signal_event; |
422 | | -r=WaitForMultipleObjectsEx(numevents+1,events, FALSE,timeoutval,FALSE); |
423 | | -if (r!=WSA_WAIT_TIMEOUT&&r!= (WAIT_OBJECT_0+numevents)) |
| 422 | +r=WaitForMultipleObjectsEx(numevents+1,events, FALSE,timeoutval,TRUE); |
| 423 | +if (r!=WAIT_TIMEOUT&&r!=WAIT_IO_COMPLETION&&r!= (WAIT_OBJECT_0+numevents)) |
424 | 424 | { |
425 | 425 | /* |
426 | 426 | * We scan all events, even those not signalled, in case more than |
|