Restartable system call behaviour

Pete French petefrench at ticketswitch.com
Wed Feb 1 03:44:12 PST 2006


I have a piece of coode which does some networking, in which I see read
and write calls failing with 'Interrupted system call' from time to time.

The reason it puzzles me is that I am explicitly catching every signal
that could possibly be causing this, with the SA_RESTART flag set. So
surely I should never see this ?

This only started happening when we moved away from 4.11 - it was happening
the whole time I was running on 5.4 and still happens on 6.0. I thought
that the default was for restartable system calls - I only started setting
the SA_RESTART flag explicitly in the last 24 hours in an effort to fix
this, but it is still happening.

Have I missed something fundamental about signals and system calls ? I am
about to go in and adapt my code so that it retries the system call if it
is interrupted - but I am uneasy about doing this without knowing *why*
the system calls arent't restarting automaticly.

-pcf.


More information about the freebsd-stable mailing list