Ist Ihre Anwendung ereignisgesteuert? (Das heißt, seine Hauptschleife enthält select()/epoll_wait()
anrufen).
In einer ereignisgesteuerten Anwendung können Sie alle Signale blockieren und nur für die Dauer von pselect()/epoll_pwait()
entsperren Anruf. Auf diese Weise muss der Rest Ihres Codes nie mit EINTR umgehen.
Siehe 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.
Standardmäßig haben Sie das SA_RESTART-Verhalten, sodass Sie sich keine Gedanken über EINTR machen müssen, wenn Sie nicht mit Signalen spielen.