dank at kegel.com
Thu Aug 16 23:23:05 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..
When I run the following program, I get n=0 consistently on linux 2.2 or 2.4.
Did I misunderstand the test condition?
struct pollfd pfds;
fd = socket();
pfds.fd = fd;
pfds.events = POLLIN|POLLOUT;
n = poll(pfds, 1, 0);
printf("n %d, revents %x\n", n, pfds.revents);
"I have seen the future, and it licks itself clean." -- Bucky Katt
More information about the wine-devel