Patch from Vladimir N. Oleynik:
On Wed Aug 18, 2004 at 06:52:57PM +0800, Matt Johnston wrote: > I've come across some strange-seeming behaviour when running programs > under Busybox (1.0.0-rc3) ash. If the child process sets stdin to be > non-blocking and then exits, the parent ash will also exit. A quick strace > shows that a subsequent read() from stdin returns EAGAIN (as would be > expected): Thanks! Patch attached. --w vodz
This commit is contained in:
parent
9ab4657c89
commit
cb01bb1d68
@ -6062,7 +6062,7 @@ retry:
|
|||||||
}
|
}
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
if(nr < 0) {
|
if(nr < 0 && errno == 0) {
|
||||||
/* Ctrl+D presend */
|
/* Ctrl+D presend */
|
||||||
nr = 0;
|
nr = 0;
|
||||||
}
|
}
|
||||||
|
@ -1297,6 +1297,7 @@ int cmdedit_read_input(char *prompt, char command[BUFSIZ])
|
|||||||
/* Control-d -- Delete one character, or exit
|
/* Control-d -- Delete one character, or exit
|
||||||
* if the len=0 and no chars to delete */
|
* if the len=0 and no chars to delete */
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
|
errno = 0;
|
||||||
prepare_to_die:
|
prepare_to_die:
|
||||||
#if !defined(CONFIG_ASH)
|
#if !defined(CONFIG_ASH)
|
||||||
printf("exit");
|
printf("exit");
|
||||||
|
Loading…
Reference in New Issue
Block a user