diwalker at earthlink.net
Thu Aug 16 23:33:54 CDT 2001
Daniel Walker wrote:
> Dan Kegel wrote:
> > Daniel Walker wrote:
> > >
> > > The problem is that poll returns POLLHUP when a socket isn't connected,
> > > then wine ignores the socket and it's events .. I realize this has been
> > > known for a some time(since linux 2.4), but why hasn't it been fix?
> > > Doesn't this effect a lot of non-blocking socket applications?
> > Can you define the problem a bit more? Do you mean you get a POLLHUP
> > *while waiting* for connection?
> No, I mean that a socket is created using socket() then, say, ioctl()
> is run on it. ioctl() then ,through the wineserver, runs sock_reselect()
> then poll() returns POLLHUP in revents and the wineserver stop watching
> the socket .. Since most non-blocking applications run socket() then
> ioctl() I would think that several applications would be effected..
This problem has already been documented. The Linux Kernel 2.4 changed
the way poll() works. But wine apparently hasn't been updated to work
with the way poll() currently works .. Under some situations an
application will open a socket then set it as non-blocking with ioctl()
, while all that is happening the wineserver gets a POLLHUP (btw, I'm
talking about revents) from poll() and subsequently ignores all other
event on the socket..
the issue is discussed at the bottom of this WWN ..
More information about the wine-devel