Votre application est-elle pilotée par un événement ? (Ce qui signifie que sa boucle principale inclut select()/epoll_wait()
appel).
Dans une application événementielle, vous pouvez bloquer tous les signaux et les débloquer uniquement pendant la durée de pselect()/epoll_pwait()
appel. De cette façon, le reste de votre code n'aura jamais à traiter avec EINTR.
Voir 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.
Par défaut, vous avez le comportement SA_RESTART, vous n'avez donc pas à vous soucier de EINTR, si vous ne jouez pas avec les signaux.