Package: acpi-support
Version: 0.137-5
Severity: normal

Execution time and use of resources can be improved by avoiding
unnecessary forks.

It's inefficient for CheckPolicy to 'echo' '0' or '1' instead of
'return'ing them.

With the current implementation, the caller runs the function in a forked
subshell:

        if [ `CheckPolicy` = 0 ]; then exit; fi

which costs more than when 'return'ing a status code:

        if CheckPolicy; then exit; fi

in the same shell, or even better:

        ! CheckPolicy || exit 0

IOW:

--- lib/policy-funcs.orig       2010-08-18 23:34:26.000000000 +0200
+++ lib/policy-funcs    2010-08-22 20:54:29.000000000 +0200
@@ -23,9 +23,9 @@
        if pidof -x $PMS > /dev/null ||
           (test "$XUSER" != "" && pidof dcopserver > /dev/null && test -x 
/usr/bin/dcop && /usr/bin/dcop --user $XUSER kded kded loadedModules | grep -q 
klaptopdaemon) ||
           PowerDevilRunning ; then
-               echo 0;
+               return 0
        else
-               echo 1;
+               return 1
        fi
 }


And, by the way, newline _is_ a command separator.  There's no need for
another one ';'.


'(...)' forks a subshell to execute '...'.  It's not needed, IMO, in this
case.  This:

--- lib/policy-funcs.a  2010-08-22 20:54:29.000000000 +0200
+++ lib/policy-funcs    2010-08-22 21:07:35.000000000 +0200
@@ -20,9 +20,13 @@
        getXconsole
        PMS="/usr/bin/gnome-power-manager /usr/bin/kpowersave 
/usr/bin/xfce4-power-manager"
        PMS="$PMS /usr/bin/guidance-power-manager 
/usr/lib/dalston/dalston-power-applet"
-       if pidof -x $PMS > /dev/null ||
-          (test "$XUSER" != "" && pidof dcopserver > /dev/null && test -x 
/usr/bin/dcop && /usr/bin/dcop --user $XUSER kded kded loadedModules | grep -q 
klaptopdaemon) ||
-          PowerDevilRunning ; then
+       if pidof -x $PMS >/dev/null ||
+          { [ "$XUSER" ] &&
+            pidof dcopserver >/dev/null &&
+            [ -x /usr/bin/dcop ] &&
+            /usr/bin/dcop --user $XUSER kded kded loadedModules |
+            grep -q klaptopdaemon; } ||
+          PowerDevilRunning; then
                return 0
        else
                return 1

will run the tests in the same shell (no subshell forks).

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages acpi-support depends on:
ii  acpi-fakekey                  0.137-5    tool to generate fake key events
ii  acpi-support-base             0.137-5    scripts for handling base ACPI eve
ii  acpid                         1:2.0.6-1  Advanced Configuration and Power I
ii  lsb-base                      3.2-23.1   Linux Standard Base 3.2 init scrip
ii  pm-utils                      1.3.0-2    utilities and scripts for power ma
ii  x11-xserver-utils             7.5+2      X server utilities

Versions of packages acpi-support recommends:
ii  dbus                          1.2.24-3   simple interprocess messaging syst
pn  radeontool                    <none>     (no description available)
ii  vbetool                       1.1-2      run real-mode video BIOS code to a
pn  xscreensaver | gnome-screensa <none>     (no description available)

Versions of packages acpi-support suggests:
ii  rfkill                        0.4-1      tool for enabling and disabling wi
ii  xinput                        1.5.2-1    Runtime configuration and test of

-- no debconf information


Cheers,

-- 
Cristian



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to