Let's say I use SIGIO to determine when to read from a socket and after getting the SIGIO, I don't read from the socket. Will I continue to get SIGIOs until I read? The man page says SIGIO is sent when "I/O is possible on a descriptor". If I don't read, I/O is still possible on the descriptor. So I'd think that I would continue to receive them until I've read from the socket, even if no new packets arrived after the first one.
If that's not the case, does SIGIO get sent every time a new packet arrives? For example, if I get a SIGIO and another packet arrives before I read, will i get another SIGIO? So the SIGIO callback would get called twice?
I found a pretty good blog post answering my Qs if anyone is interested in the answers http://ajaxxx.livejournal.com/62378.html