X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=programs%2Fimagex.c;h=372e115b64509d8b6a85ba72061038160c353aef;hp=b78fa325abd37488f4954947c15771fe1ac68171;hb=d33bda72d5d980aa4de9739ed5b55b424093e8ac;hpb=2af95e7dc313e9abaf571034c3e86f32503bf232 diff --git a/programs/imagex.c b/programs/imagex.c index b78fa325..372e115b 100644 --- a/programs/imagex.c +++ b/programs/imagex.c @@ -145,6 +145,7 @@ IMAGEX_PROGNAME" mountrw WIMFILE [IMAGE_NUM | IMAGE_NAME] DIRECTORY\n" [OPTIMIZE] = T( IMAGEX_PROGNAME" optimize WIMFILE [--check] [--recompress]\n" +" [--threads=NUM_THREADS]\n" ), [SPLIT] = T( @@ -262,6 +263,7 @@ static const struct option mount_options[] = { static const struct option optimize_options[] = { {T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION}, {T("recompress"), no_argument, NULL, IMAGEX_RECOMPRESS_OPTION}, + {T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION}, {NULL, 0, NULL, 0}, }; @@ -2254,6 +2256,7 @@ imagex_optimize(int argc, tchar **argv) const tchar *wimfile; off_t old_size; off_t new_size; + unsigned num_threads = 0; for_opt(c, optimize_options) { switch (c) { @@ -2264,6 +2267,11 @@ imagex_optimize(int argc, tchar **argv) case IMAGEX_RECOMPRESS_OPTION: write_flags |= WIMLIB_WRITE_FLAG_RECOMPRESS; break; + case IMAGEX_THREADS_OPTION: + num_threads = parse_num_threads(optarg); + if (num_threads == UINT_MAX) + return -1; + break; default: usage(OPTIMIZE); return -1; @@ -2291,7 +2299,8 @@ imagex_optimize(int argc, tchar **argv) else tprintf(T("%"PRIu64" KiB\n"), old_size >> 10); - ret = wimlib_overwrite(w, write_flags, 0, imagex_progress_func); + ret = wimlib_overwrite(w, write_flags, num_threads, + imagex_progress_func); if (ret == 0) { new_size = file_get_size(argv[0]);