Skip to content

Commit 307d037

Browse files
authored
Merge pull request #45 from ArcInstitute/21-return-error-immediately-in-parallel-implementations-when-n_threads-0
21 handle num threads equals zero by setting to max
2 parents 1b5926f + 7252ab5 commit 307d037

3 files changed

Lines changed: 16 additions & 1 deletion

File tree

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "binseq"
3-
version = "0.6.4"
3+
version = "0.6.5"
44
edition = "2021"
55
description = "A high efficiency binary format for sequencing data"
66
license = "MIT"
@@ -17,6 +17,7 @@ bitnuc = "0.2.11"
1717
bytemuck = "1.21.0"
1818
byteorder = "1.5.0"
1919
memmap2 = "0.9.5"
20+
num_cpus = "1.17.0"
2021
rand = { version = "0.9.1", features = ["small_rng"] }
2122
thiserror = "2.0.8"
2223
zstd = { version = "0.13.3", features = ["zstdmt"] }

src/bq/reader.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,13 @@ impl ParallelReader for MmapReader {
629629
num_threads: usize,
630630
range: Range<usize>,
631631
) -> Result<()> {
632+
// Calculate the number of threads to use
633+
let num_threads = if num_threads == 0 {
634+
num_cpus::get()
635+
} else {
636+
num_threads.min(num_cpus::get())
637+
};
638+
632639
// Validate range
633640
let num_records = self.num_records();
634641
if range.start >= num_records || range.end > num_records || range.start >= range.end {

src/vbq/reader.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,13 @@ impl ParallelReader for MmapReader {
977977
num_threads: usize,
978978
range: Range<usize>,
979979
) -> Result<()> {
980+
// Calculate the number of threads to use
981+
let num_threads = if num_threads == 0 {
982+
num_cpus::get()
983+
} else {
984+
num_threads.min(num_cpus::get())
985+
};
986+
980987
// Generate or load the index first
981988
let index = self.load_index()?;
982989

0 commit comments

Comments
 (0)