From 3b0479427d3db907c98071a3690225bd0c367c43 Mon Sep 17 00:00:00 2001 From: trivernis Date: Sun, 15 Mar 2020 11:58:38 +0100 Subject: [PATCH] Update to multithreaded bdflib version --- Cargo.lock | 19 ++++++++++++++++--- Cargo.toml | 2 +- src/main.rs | 5 ++--- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b4904b0..65cd5c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,11 +53,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bdflib" -version = "0.2.0" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "xz2 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -164,6 +167,15 @@ dependencies = [ "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-channel" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-deque" version = "0.7.3" @@ -222,7 +234,7 @@ name = "destools" version = "0.1.0" dependencies = [ "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bdflib 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bdflib 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "cfb-mode 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "des 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -815,7 +827,7 @@ dependencies = [ "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" "checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" -"checksum bdflib 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3462a43309b1dcdf09f2158552e19e48b27ddf77cfdcbf28bf716153b5bcded0" +"checksum bdflib 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a5d61a0a2277f37a2bf6bbaefcd775632e5864dd2920add51aac92b55e3cd6d9" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" "checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" @@ -830,6 +842,7 @@ dependencies = [ "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" "checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" +"checksum crossbeam-channel 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061" "checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" "checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" "checksum crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" diff --git a/Cargo.toml b/Cargo.toml index 50c8ef5..f806319 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,4 +19,4 @@ pbr = "1.0.2" spinners = "1.2.0" regex = "1.3.4" byteorder = "1.3.4" -bdflib = "0.2.0" \ No newline at end of file +bdflib = "0.3.0" \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 4731666..5c51191 100644 --- a/src/main.rs +++ b/src/main.rs @@ -183,7 +183,6 @@ fn create_dictionary(_opts: &Opts, args: &CreateDictionary) { let input: String = (*args.input).parse().unwrap(); // TODO: Some form of removing duplicates (without itertools) let fout = File::create(args.output.clone()).unwrap(); - let handle; let content = fs::read_to_string(input).expect("Failed to read content"); let lines = content.par_lines(); @@ -203,9 +202,9 @@ fn create_dictionary(_opts: &Opts, args: &CreateDictionary) { .add_lookup_entry(HashEntry::new(SHA256.to_string(), 32)) .expect("Failed to add sha256 lookup entry"); - handle = thread::spawn(move || { + let handle = thread::spawn(move || { for entry in tx { - if let Err(e) = bdf_file.add_data_entry(entry) { + if let Err(e) = &bdf_file.add_data_entry(entry) { println!("{:?}", e); } pb.inc();