Thread: pgsql: Fix infinite sleep and failes of send in Win32.
pgsql: Fix infinite sleep and failes of send in Win32.
From
teodor@postgresql.org (Teodor Sigaev)
Date:
Log Message: ----------- Fix infinite sleep and failes of send in Win32. 1) pgwin32_waitforsinglesocket(): WaitForMultipleObjectsEx now called with finite timeout (100ms) in case of FP_WRITE and UDP socket. If timeout occurs then pgwin32_waitforsinglesocket() tries to write empty packet goes to WaitForMultipleObjectsEx again. 2) pgwin32_send(): add loop around WSASend and pgwin32_waitforsinglesocket(). The reason is: for overlapped socket, 'ok' result from pgwin32_waitforsinglesocket() isn't guarantee that socket is still free, it can become busy again and following WSASend call will fail with WSAEWOULDBLOCK error. See http://archives.postgresql.org/pgsql-hackers/2006-10/msg00561.php Tags: ---- REL8_1_STABLE Modified Files: -------------- pgsql/src/backend/port/win32: socket.c (r1.10.2.1 -> r1.10.2.2) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/port/win32/socket.c.diff?r1=1.10.2.1&r2=1.10.2.2)