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 : "");

Reply via email to