Strange Behavior from poll(2)

Larry Jones scjones at sdrc.UUCP
Wed Nov 22 23:32:53 AEST 1989


I'm having a really screwey problem with poll that I hope someone
can give me some help with.  I'm calling it with two fds, both
event masks are set to POLLIN | POLLPRI.  It starts out working
OK, but eventually I get into a state where one of the fds has
pending data, but poll blocks instead of returning.  If data
comes in on the other fd, poll returns 2 and both return event
masks are set to POLLIN!  Similarly, if I send a non-fatal signal
to the process, poll returns 1 with POLLIN set in the return
event mask for the fd with pending data rather than returning -1
with errno set to EINTR as you would expect.

So, it seems that poll knows about the pending data, so why does
it block instead of returning right away?!?  My guess is that I
must be corrupting memory somewhere, but I haven't a clue as to
how to track it down.  Any suggestions?
----
Larry Jones                         UUCP: uunet!sdrc!scjones
SDRC                                      scjones at SDRC.UU.NET
2000 Eastman Dr.                    BIX:  ltl
Milford, OH  45150-2789             AT&T: (513) 576-2070
"You know how Einstein got bad grades as a kid?  Well MINE are even WORSE!"
-Calvin



More information about the Comp.unix.wizards mailing list