System calls may need to be restarted for a variety of reasons,
generally explained within the system call documentation. The
most typical reason is that the system call was interrupted, and
the caller is expected to re-invoke the system call to complete
the operation.