Re: Patch for Win32 blocking problem
| От | Teodor Sigaev |
|---|---|
| Тема | Re: Patch for Win32 blocking problem |
| Дата | |
| Msg-id | 452DF3EF.6010601@sigaev.ru обсуждение исходный текст |
| Ответ на | Re: Patch for Win32 blocking problem (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: Patch for Win32 blocking problem
|
| Список | pgsql-hackers |
> time. I find the proposed patch in pgwin32_waitforsinglesocket to be a
> pretty ugly kluge though. Are you sure it's needed given the other fix?
Loop in pgwin32_send() doesn't prevent from infinite sleeping in
WaitForMultipleObjectEx in pgwin32_waitforsinglesocket. I'm not a Windows guru
at all, and I'm not like that part of patch too. I can't find better solution...
May be that way (untested):
if ( isUDP && (what & FP_WRITE) )
for(;;) {r = WaitForMultipleObjects(100 ms);if ( r == WAIT_TIMEOUT ) { r == WSASend( sero packet ); /* see comments
inpgwin32_select() */ [ analyze result of WSASend: * if success then return 1 * WSAEWOULDBLOCK -
continueloop * SOCKET_ERROR - return 0 ]} else break;
}
I'm not sure that is more clean way...
--
Teodor Sigaev E-mail: teodor@sigaev.ru
WWW: http://www.sigaev.ru/
В списке pgsql-hackers по дате отправления: