[Top][All Lists]

[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: Wed, 19 Dec 2018 09:01:16 -0500
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.3.3

On 12/18/18 8:06 PM, Bize Ma wrote:
> In here:
> https://lists.gnu.org/archive/html/bug-bash/2018-01/msg00032.html
> You promised:
> The
> next version of bash will install its SIGWINCH handler with SA_RESTART.
> Yet:
> Still a bug in bash version 5

And yet, when you look at the source, the signal handlers are installed
with SA_RESTART. For example,

  /* Let's see if we can keep SIGWINCH from interrupting interruptible system
     calls, like open(2)/read(2)/write(2) */
#if defined (SIGWINCH)
  if (sig == SIGWINCH)
    act.sa_flags |= SA_RESTART;         /* XXX */

in sig.c:set_signal_handler() and

#  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().

``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    address@hidden    http://tiswww.cwru.edu/~chet/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]