Author: eelco
Date: Sun Mar 18 19:05:44 2012
New Revision: 33242
URL: https://nixos.org/websvn/nix/?rev=33242&sc=1

Log:
* Slight speedup.  It's amazing how quickly shell scripts become
  slow: calling basename in a loop somewhere has a noticable impact on
  performance.  We really shouldn't use bash scripts.

Modified:
   nixos/trunk/modules/system/activation/switch-to-configuration.sh
   nixos/trunk/modules/system/activation/top-level.nix

Modified: nixos/trunk/modules/system/activation/switch-to-configuration.sh
==============================================================================
--- nixos/trunk/modules/system/activation/switch-to-configuration.sh    Sun Mar 
18 18:55:47 2012        (r33241)
+++ nixos/trunk/modules/system/activation/switch-to-configuration.sh    Sun Mar 
18 19:05:44 2012        (r33242)
@@ -106,8 +106,7 @@
 # all jobs that don't have a "stop" goal.)  We use the symlinks in
 # /var/run/upstart-jobs (created by each job's pre-start script) to
 # determine if a job has changed.
-for job in $(cd $jobsDir && ls *.conf); do
-    job=$(basename $job .conf)
+for job in @jobs@; do
     status=$(status "$job")
     if ! [[ "$status" =~ start/ ]]; then continue; fi
     if [ "$(readlink -f "$jobsDir/$job.conf")" = "$(readlink -f 
"/var/run/upstart-jobs/$job")" ]; then continue; fi
@@ -128,8 +127,7 @@
 # differs from the previous instance of the same task; if it wasn't
 # previously run, don't run it.  If it's a service, only start it if
 # it has a "start on" condition.
-for job in $(cd $jobsDir && ls *.conf); do
-    job=$(basename $job .conf)
+for job in @jobs@; do
     status=$(status "$job")
     if ! [[ "$status" =~ stop/ ]]; then continue; fi
 

Modified: nixos/trunk/modules/system/activation/top-level.nix
==============================================================================
--- nixos/trunk/modules/system/activation/top-level.nix Sun Mar 18 18:55:47 
2012        (r33241)
+++ nixos/trunk/modules/system/activation/top-level.nix Sun Mar 18 19:05:44 
2012        (r33242)
@@ -154,6 +154,8 @@
     initScriptBuilder = config.system.build.initScriptBuilder;
     activationScript = config.system.activationScripts.script;
 
+    jobs = map (j: j.name) (attrValues config.jobs);
+
     # Pass the names of all Upstart tasks to the activation script.
     tasks = attrValues (mapAttrs (n: v: if v.task then ["[${v.name}]=1"] else 
[]) config.jobs);
     
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to