diff --git a/crates/typst-cli/src/args.rs b/crates/typst-cli/src/args.rs index 5ec56555e..49761d8f2 100644 --- a/crates/typst-cli/src/args.rs +++ b/crates/typst-cli/src/args.rs @@ -225,7 +225,7 @@ pub struct SharedArgs { pub package_storage_args: PackageStorageArgs, /// Number of parallel jobs spawned during compilation, - /// defaults to number of CPUs. + /// defaults to number of CPUs. Setting it to 1 disables parallelism. #[clap(long, short)] pub jobs: Option, } diff --git a/crates/typst-cli/src/world.rs b/crates/typst-cli/src/world.rs index 7cec41011..bb491c029 100644 --- a/crates/typst-cli/src/world.rs +++ b/crates/typst-cli/src/world.rs @@ -60,7 +60,11 @@ impl SystemWorld { pub fn new(command: &SharedArgs) -> Result { // Set up the thread pool. if let Some(jobs) = command.jobs { - rayon::ThreadPoolBuilder::new().num_threads(jobs).build_global().ok(); + rayon::ThreadPoolBuilder::new() + .num_threads(jobs) + .use_current_thread() + .build_global() + .ok(); } // Resolve the system-global input path.