heh. I was just doing it the way Tom suggested - see attached. With a
little more trouble we could also keep track if the listened for events
and sometimes save ourselves a second call to WSAEventSelect, but I'm
not sure it's worth it.
>> Is anyone working on this?
>> Tom Lane wrote:
>> > korry <korry(at)appx(dot)com <mailto:korry(at)appx(dot)com>> writes:
>> > > The problem is that, each time you go through
>> > > pgwin32_waitforsinglesocket(), you tie the *same* kernel object
>> > > (waitevent is static) to each socket.
>> > > The fix is pretty simple - just call WSAEventSelect( s, waitevent, 0 )
>> > > after WaitForMultipleObjectsEx() returns. That disassociates the socket
>> > > from the Event (it will get re-associated the next time
>> > > pgwin32_waitforsingleselect() is called.
>> > Hmm. Presumably we don't do this a whole lot (use multiple sockets) or
>> > we'd have noticed before. Perhaps better would be to keep an additional
>> > static variable saying which socket the event is currently associated
>> > to, and only issue the extra WSAEventSelect calls if we need to change
>> > it. Or is WSAEventSelect fast enough that it doesn't matter?
> Here's a simple patch that fixes the problem (I haven't explored the
> performance of this patch compared to Tom's suggestion).
In response to
pgsql-hackers by date
|Next:||From: Tzahi Fadida||Date: 2006-07-29 14:24:57|
|Subject: pgindet ^M|
|Previous:||From: Bruce Momjian||Date: 2006-07-29 13:31:31|
|Subject: Re: On-disk bitmap index patch|
pgsql-patches by date
|Next:||From: Bruce Momjian||Date: 2006-07-29 15:21:44|
|Subject: Re: [HACKERS] More #ifdef fun: src/interfaces/libpq/win32.c|
|Previous:||From: email@example.com||Date: 2006-07-29 12:18:33|
|Subject: Re: [HACKERS] Possible explanation for Win32 stats regression test|