Hi Josh,
I found this blog entry really interesting… I hadn’t thought about the fact that the PC losering problem is really about signals.
One example of where EINTR is important to me is when doing graceful server shutdowns. In particular, if I have a SIGTERM handler that sets a global “shutdown” variable, then I need to check if accept() returned EINTR and if so, did the “shutdown” global variable get set.
I like your idea of having separate system calls that retry if EINTR is returned, but it is simple enough to write those functions in a user program. In fact, it is probably a good practice to wrap most system calls to deal with other notoriously difficult to deal with errors such as ENOMEM.