Skip to content

Commit 9cc9642

Browse files
Merge pull request #243 from Shnatsel/drop-flume
Drop flume to reduce dependency footprint now that std has a good channel
2 parents ce6ec41 + e94073a commit 9cc9642

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ bit_field = "^0.10.1" # exr file version bit flags
3333
miniz_oxide = "^0.7.1" # zip compression for pxr24
3434
smallvec = "^1.7.0" # make cache-friendly allocations TODO profile if smallvec is really an improvement!
3535
rayon-core = "^1.11.0" # threading for parallel compression TODO make this an optional feature?
36-
flume = { version = "^0.11.0", default-features = false } # crossbeam, but less unsafe code TODO make this an optional feature?
3736
zune-inflate = { version = "^0.2.3", default-features = false, features = ["zlib"] } # zip decompression, faster than miniz_oxide
3837

3938
[dev-dependencies]

src/block/reader.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
use std::convert::TryFrom;
55
use std::fmt::Debug;
66
use std::io::{Read, Seek};
7+
use std::sync::mpsc;
78
use rayon_core::{ThreadPool, ThreadPoolBuildError};
89

910
use smallvec::alloc::sync::Arc;
@@ -387,8 +388,8 @@ impl<R: ChunksReader> SequentialBlockDecompressor<R> {
387388
#[derive(Debug)]
388389
pub struct ParallelBlockDecompressor<R: ChunksReader> {
389390
remaining_chunks: R,
390-
sender: flume::Sender<Result<UncompressedBlock>>,
391-
receiver: flume::Receiver<Result<UncompressedBlock>>,
391+
sender: mpsc::Sender<Result<UncompressedBlock>>,
392+
receiver: mpsc::Receiver<Result<UncompressedBlock>>,
392393
currently_decompressing_count: usize,
393394
max_threads: usize,
394395

@@ -437,7 +438,7 @@ impl<R: ChunksReader> ParallelBlockDecompressor<R> {
437438

438439
let max_threads = pool.current_num_threads().max(1).min(chunks.len()) + 2; // ca one block for each thread at all times
439440

440-
let (send, recv) = flume::unbounded(); // TODO bounded channel simplifies logic?
441+
let (send, recv) = mpsc::channel(); // TODO bounded channel simplifies logic?
441442

442443
Ok(Self {
443444
shared_meta_data_ref: Arc::new(chunks.meta_data().clone()),

src/block/writer.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ use std::fmt::Debug;
55
use std::io::Seek;
66
use std::iter::Peekable;
77
use std::ops::Not;
8+
use std::sync::mpsc;
89
use rayon_core::{ThreadPool, ThreadPoolBuildError};
910

1011
use smallvec::alloc::collections::BTreeMap;
1112

1213
use crate::block::UncompressedBlock;
13-
use crate::block::chunk::{Chunk};
14+
use crate::block::chunk::Chunk;
1415
use crate::compression::Compression;
1516
use crate::error::{Error, Result, UnitResult, usize_to_u64};
1617
use crate::io::{Data, Tracking, Write};
@@ -337,8 +338,8 @@ pub struct ParallelBlocksCompressor<'w, W> {
337338
meta: &'w MetaData,
338339
sorted_writer: SortedBlocksWriter<'w, W>,
339340

340-
sender: flume::Sender<Result<(usize, usize, Chunk)>>,
341-
receiver: flume::Receiver<Result<(usize, usize, Chunk)>>,
341+
sender: mpsc::Sender<Result<(usize, usize, Chunk)>>,
342+
receiver: mpsc::Receiver<Result<(usize, usize, Chunk)>>,
342343
pool: rayon_core::ThreadPool,
343344

344345
currently_compressing_count: usize,
@@ -379,7 +380,7 @@ impl<'w, W> ParallelBlocksCompressor<'w, W> where W: 'w + ChunksWriter {
379380
};
380381

381382
let max_threads = pool.current_num_threads().max(1).min(chunks_writer.total_chunks_count()) + 2; // ca one block for each thread at all times
382-
let (send, recv) = flume::unbounded(); // TODO bounded channel simplifies logic?
383+
let (send, recv) = mpsc::channel(); // TODO bounded channel simplifies logic?
383384

384385
Some(Self {
385386
sorted_writer: SortedBlocksWriter::new(meta, chunks_writer),

0 commit comments

Comments
 (0)