La tua applicazione è guidata dagli eventi? (Il che significa che il suo ciclo principale include select()/epoll_wait()
chiamata).
In un'applicazione basata su eventi puoi bloccare tutti i segnali e sbloccarli solo per la durata di pselect()/epoll_pwait()
chiamata. In questo modo il resto del tuo codice non avrà mai a che fare con EINTR.
Vedere sigaction:http://pubs.opengroup.org/onlinepubs/009695399/functions/sigaction.html
SA_RESTART
This flag affects the behavior of interruptible functions; that is, those
specified to fail with errno set to EINTR. If set, and a function specified
as interruptible is interrupted by this signal, the function shall restart
and shall not fail with EINTR unless otherwise specified. If the flag is not
set, interruptible functions interrupted by this signal shall fail with errno
set to EINTR.
Per impostazione predefinita, hai il comportamento SA_RESTART, quindi non devi preoccuparti di EINTR, se non giochi con i segnali.