[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: write() not retried after EINTR in printf and echo
From: |
Chet Ramey |
Subject: |
Re: write() not retried after EINTR in printf and echo |
Date: |
Fri, 21 Dec 2018 14:57:49 -0500 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 |
On 12/19/18 10:15 PM, Bize Ma wrote:
> Chet Ramey (<chet.ramey@case.edu <mailto:chet.ramey@case.edu>>) wrote:
>
> And yet, when you look at the source, the signal handlers are installed
> with SA_RESTART. For example,
>
>
>
> # if defined (SIGWINCH)
> act.sa_flags = (sig == SIGWINCH) ? SA_RESTART : 0;
> # else
> act.sa_flags = 0;
> # endif /* SIGWINCH */
>
> in lib/readline/signals.c:rl_set_sighandler().
>
>
> True for SIGWINCH, but "write error: Interrupted system call"
> is still exposed to users (which it shouldn't) for other signals:
Ah, now we're moving the goalposts. There's a case to be made for doing
that, I suppose, but I'd rather defer to the system's default handling
for a particular signal.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/