> Is anyone working on this?
>
> Tom Lane wrote:
> > korry <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).
-- Korry