Davide Libenzi wrote: >>Nonsense. If you wish to make such a claim, you need to provide an >>example of a situation in which it won't work. >> >> > >Your welcome. This is your code : > >for (;;) { > fd = event_wait(...); > while (do_io(fd) != EAGAIN); >} > >If the I/O space is not exhausted when you call event_wait(...); you'll >never receive the event because you'll be waiting a 0->1 transaction >without bringing the signal to 0 ( I/O space exhausted ). > My code above does exhaust the I/O space. > That one is a >typical use of poll() - select() - /dev/poll and you showed pretty clearly >that you do not seem to understand edge triggered event APIs. If you code >your I/O function like : > >int my_io(...) { > > if (event_wait(...)) > do_io(...); > >} > This is not how my example is coded. while (do_io(...) != EAGAIN); is not equivalent to: do_io(...); The former is guaranteed to exhaust the I/O space, the latter is not. You're spouting nonsense.