Author: jilles
Date: Sat Jun 18 11:05:30 2011
New Revision: 223227
URL: http://svn.freebsd.org/changeset/base/223227

Log:
  rc.subr: Eliminate about 100 forks from the boot sequence.
  
  With the current sh, placing eval in a command substitution always results
  in a fork(), even if it is the only command and only executes a single
  simple command. Therefore, avoid it where it can be avoided easily.
  
  Side effect: values starting with a hyphen and all whitespace are preserved.
  The values are defaults and names for rc.conf variables and messages to be
  given about obsolete ones.
  
  MFC after:    2 weeks

Modified:
  head/etc/rc.subr

Modified: head/etc/rc.subr
==============================================================================
--- head/etc/rc.subr    Sat Jun 18 10:48:00 2011        (r223226)
+++ head/etc/rc.subr    Sat Jun 18 11:05:30 2011        (r223227)
@@ -1062,7 +1062,7 @@ load_rc_config()
 
        # Set defaults if defined.
        for _var in $rcvar $rcvars; do
-               _defval=`eval echo "\\\$${_var}_defval"`
+               eval _defval=\$${_var}_defval
                if [ -n "$_defval" ]; then
                        eval : \${$_var:=\$${_var}_defval}
                fi
@@ -1070,9 +1070,9 @@ load_rc_config()
 
        # check obsolete rc.conf variables
        for _var in $rcvars_obsolete; do
-               _v=`eval echo \\$$_var`
-               _msg=`eval echo \\$${_var}_obsolete_msg`
-               _new=`eval echo \\$${_var}_newvar`
+               eval _v=\$$_var
+               eval _msg=\$${_var}_obsolete_msg
+               eval _new=\$${_var}_newvar
                case $_v in
                "")
                        ;;
@@ -1765,7 +1765,7 @@ check_kern_features()
 _echoonce()
 {
        local _var _msg _mode
-       _var=`eval echo \\$$1`
+       eval _var=\$$1
        _msg=$2
        _mode=$3
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to