Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14924 > unrolled thread

Re: write() not retried after EINTR in printf and echo

Started byChet Ramey <chet.ramey@case.edu>
First post2018-12-19 09:01 -0500
Last post2018-12-19 09:01 -0500
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: write() not retried after EINTR in printf and echo Chet Ramey <chet.ramey@case.edu> - 2018-12-19 09:01 -0500

#14924 — Re: write() not retried after EINTR in printf and echo

FromChet Ramey <chet.ramey@case.edu>
Date2018-12-19 09:01 -0500
SubjectRe: write() not retried after EINTR in printf and echo
Message-ID<mailman.5935.1545228093.1284.bug-bash@gnu.org>
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 */
#endif


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    chet@case.edu    http://tiswww.cwru.edu/~chet/

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web