Date: Tue, 23 Jun 2009 21:50:06 +0000 (UTC) From: Jilles Tjoelker <jilles@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/bin/sh eval.c Message-ID: <200906232150.n5NLoQLX074888@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jilles 2009-06-23 21:50:06 UTC FreeBSD src repository Modified files: bin/sh eval.c Log: SVN rev 194774 on 2009-06-23 21:50:06Z by jilles Do not fork for a subshell if it is the last thing this shell is doing (EV_EXIT). The fork is still done as normal if any traps are active. In many cases, the fork can be avoided even without this change by using {} instead of (), but in practice many scripts use (), likely because the syntax is simpler. Example: sh -c '(/bin/sleep 10)& sleep 1;ps -p $! -o comm=' Now prints "sleep" instead of "sh". $! is more useful this way. Most shells (dash, bash, pdksh, ksh93, zsh) seem to print "sleep" for this. Example: sh -c '( ( ( (ps jT))))' Now shows no waiting shell processes instead of four. Most shells (dash, bash, pdksh, ksh93, zsh) seem to show zero or one. PR: bin/74404 Approved by: ed (mentor) (implicit) Revision Changes Path 1.63 +2 -2 src/bin/sh/eval.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906232150.n5NLoQLX074888>