]> granicus.if.org Git - xz/commitdiff
xz: Minor internal changes to handling of --threads.
authorLasse Collin <lasse.collin@tukaani.org>
Sat, 9 Apr 2011 12:11:13 +0000 (15:11 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sat, 9 Apr 2011 12:11:13 +0000 (15:11 +0300)
Now it always defaults to one thread. Maybe this
will change again if a threading method is added
that doesn't affect memory usage.

src/xz/args.c
src/xz/hardware.c
src/xz/hardware.h

index f207e7f445940f5d46395acb3226db24ad05f767..17ac06091a48e3e64740aa610ff77c4d31d3449a 100644 (file)
@@ -179,8 +179,8 @@ parse_real(args_info *args, int argc, char **argv)
                        break;
 
                case 'T':
-                       hardware_threadlimit_set(str_to_uint64(
-                                       "threads", optarg, 0, UINT32_MAX));
+                       hardware_threads_set(str_to_uint64("threads",
+                                       optarg, 0, LZMA_THREADS_MAX));
                        break;
 
                // --version
index a4733c27e1180e1eb1d2e0070e0e94a51e2ce2a3..925926ca4ace5c407c613997bc2ca0813f44d884 100644 (file)
@@ -14,9 +14,9 @@
 #include "tuklib_cpucores.h"
 
 
-/// Maximum number of free *coder* threads. This can be set with
+/// Maximum number of worker threads. This can be set with
 /// the --threads=NUM command line option.
-static uint32_t threadlimit;
+static uint32_t threads_max = 1;
 
 /// Memory usage limit for compression
 static uint64_t memlimit_compress;
@@ -29,15 +29,16 @@ static uint64_t total_ram;
 
 
 extern void
-hardware_threadlimit_set(uint32_t new_threadlimit)
+hardware_threads_set(uint32_t n)
 {
-       if (new_threadlimit == 0) {
-               // The default is the number of available CPU cores.
-               threadlimit = tuklib_cpucores();
-               if (threadlimit == 0)
-                       threadlimit = 1;
+       if (n == 0) {
+               // Automatic number of threads was requested.
+               // Use the number of available CPU cores.
+               threads_max = tuklib_cpucores();
+               if (threads_max == 0)
+                       threads_max = 1;
        } else {
-               threadlimit = new_threadlimit;
+               threads_max = n;
        }
 
        return;
@@ -45,9 +46,9 @@ hardware_threadlimit_set(uint32_t new_threadlimit)
 
 
 extern uint32_t
-hardware_threadlimit_get(void)
+hardware_threads_get(void)
 {
-       return threadlimit;
+       return threads_max;
 }
 
 
@@ -139,6 +140,5 @@ hardware_init(void)
 
        // Set the defaults.
        hardware_memlimit_set(0, true, true, false);
-       hardware_threadlimit_set(0);
        return;
 }
index bed952b07d2324a3855f8b7333ad2ce805b089f6..46ebad5babed9a00e4e172560a93e569dcae9ee4 100644 (file)
 extern void hardware_init(void);
 
 
-/// Set custom value for maximum number of coder threads.
-extern void hardware_threadlimit_set(uint32_t threadlimit);
+/// Set the maximum number of worker threads.
+extern void hardware_threads_set(uint32_t threadlimit);
 
-/// Get the maximum number of coder threads. Some additional helper threads
-/// are allowed on top of this).
-extern uint32_t hardware_threadlimit_get(void);
+/// Get the maximum number of worker threads.
+extern uint32_t hardware_threads_get(void);
 
 
 /// Set the memory usage limit. There are separate limits for compression