On 1/23/17 10:45 AM, Chet Ramey wrote: > On 1/23/17 10:42 AM, Chet Ramey wrote: >> On 1/22/17 2:32 PM, Siteshwar Vashisht wrote: >>> If a child process sets stdin to non-blocking and does not set it back to >>> blocking before exiting, other processes may fail to read from stdin. >> >> It's not the shell's business to be resetting this for processes it spawns. >> What bash should do is to turn of O_NONBLOCK when it reads input, which it >> already does at startup but not every time it calls readline(). > > And maybe I should make the follow-up point explicit: that will fix this > problem, too.
Something like this, for instance. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.4-patched/parse.y 2016-09-11 11:31:46.000000000 -0400 --- parse.y 2017-01-23 13:54:53.000000000 -0500 *************** *** 1454,1457 **** --- 1454,1458 ---- } + sh_unset_nodelay_mode (fileno (rl_instream)); /* just in case */ current_readline_line = readline (current_readline_prompt ? current_readline_prompt : "");