freebsd-dev/bin/sh
Jilles Tjoelker ed4c3b5f86 sh: Forget about terminated background processes sooner.
Unless $! has been referenced for a particular job or $! still contains that
job's pid, forget about it after it has terminated. If $! has been
referenced, remember the job until the wait builtin has reported its
completion (either with the pid as parameter or without parameters).

In interactive mode, jobs are forgotten after termination has been reported,
which happens before primary prompts and through the jobs builtin. Even
then, though, remember a job if $! has been referenced.

This is similar to what is suggested by POSIX and should fix most memory
leaks (which also tend to cause sh to use more CPU time) with long running
scripts that start background jobs.

Caveats:
* Repeatedly referencing $! without ever doing 'wait', like
    while :; do foo & echo started foo: $!; sleep 60; done
  will still use a lot of memory and CPU time in the long run.
* The jobs and jobid builtins do not cause a job to be remembered for longer
  like expanding $! does.

PR:		bin/55346
2010-06-29 22:37:45 +00:00
..
bltin
funcs
alias.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
alias.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith_lex.l sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
arith.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith.y sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
builtins.def
cd.c sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
cd.h sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
error.c sh: Fix some bugs with backquoted builtins: 2010-01-01 18:17:46 +00:00
error.h sh: Add some __dead2 to indicate functions that do not return. 2009-12-24 20:55:14 +00:00
eval.c sh: Recognize "--" in . and exec. 2010-05-28 22:40:24 +00:00
eval.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
exec.c sh: Improve the command builtin: 2010-03-06 16:57:53 +00:00
exec.h sh: Improve the command builtin: 2010-03-06 16:57:53 +00:00
expand.c sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
expand.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
histedit.c sh: Add filename completion. 2010-06-15 21:58:40 +00:00
init.h
input.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
input.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
jobs.c sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
jobs.h sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
mail.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
mail.h
main.c sh: Recognize "--" in . and exec. 2010-05-28 22:40:24 +00:00
main.h sh: Do not run callers' exception handlers in subshells. 2009-12-25 20:21:35 +00:00
Makefile
memalloc.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
memalloc.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
miscbltin.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkbuiltins sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkinit.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mknodes.c
mksyntax.c sh: Partially revert r206146, allowing double-quotes in arithmetic. 2010-04-11 12:24:47 +00:00
mktokens
myhistedit.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
mystring.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mystring.h
nodes.c.pat
nodetypes
options.c sh: Automatically enable -o emacs in interactive shells with terminals. 2010-04-05 14:15:51 +00:00
options.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
output.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
output.h sh: Fix some bugs with backquoted builtins: 2010-01-01 18:17:46 +00:00
parser.c sh: Fix compilation with -DNO_HISTORY. 2010-06-19 10:33:04 +00:00
parser.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
redir.c Fix some cases where file descriptors from redirections leak to programs. 2009-11-29 22:33:59 +00:00
redir.h
sh.1 sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
shell.h
show.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR
trap.c trap: do not consider a bad signal name a fatal error. 2009-11-21 20:44:34 +00:00
trap.h sh: Add some __dead2 to indicate functions that do not return. 2009-12-24 20:55:14 +00:00
var.c sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
var.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00