Follow-up Comment #5, bug #64442 (project findutils):
>From sigaction(3p) ... The _sa_flags_ field can be used to modify the behavior of the specified signal. ... 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 an interruptible function which uses a timeout is restarted, the duration of the timeout following the restart is set to an unspecified value that does not exceed the original timeout value. If the flag is not set, interruptible functions interrupted by this signal shall fail with _errno_ set to *[EINTR]*. ... xargs sets _sa_flags_ to 0 xargs.c:735 xargs.c:741 sigact.sa_flags = 0; so read() is interrupted. safe_read() is supposed to handle that but somehow doesn't. Also safe_read() is supposed to but does not set SAFE_READ_ERROR for some reason. xargs.c:1377 /* We use safe_read here in order to avoid an error if SIGUSR[12] is handled during the read system call. */ _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?64442> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/