Re: [HACKERS] Patch for Win32 blocking problem

2006-10-12 Thread Teodor Sigaev
Attached patch implements that idea. 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 in pgwin32_select() */ [ analyze result of WSASend:

Re: [HACKERS] Patch for Win32 blocking problem

2006-10-12 Thread Teodor Sigaev
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 al

Re: [HACKERS] Patch for Win32 blocking problem

2006-10-11 Thread Tom Lane
Teodor Sigaev <[EMAIL PROTECTED]> writes: > Patch solves the problem with blocking backend in > pgwin32_waitforsinglesocket() > when it tries to send something to stat collector. Adding the looping in pgwin32_send() seems clearly correct, since there could be multiple processes trying to send to

[HACKERS] Patch for Win32 blocking problem

2006-10-11 Thread Teodor Sigaev
Patch solves the problem with blocking backend in pgwin32_waitforsinglesocket() when it tries to send something to stat collector. Patch makes two thing: 1) pgwin32_waitforsinglesocket(): WaitForMultipleObjectsEx now called with finite timeout (100ms) in case of FP_WRITE and UDP socket. If timeou