[INFO] fetching crate threads_pool 0.2.6... [INFO] testing threads_pool-0.2.6 against master#caccb4d0368bd918ef6668af8e13834d07040417 for pr-146098-1 [INFO] extracting crate threads_pool 0.2.6 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate threads_pool 0.2.6 [INFO] finished tweaking crates.io crate threads_pool 0.2.6 [INFO] tweaked toml for crates.io crate threads_pool 0.2.6 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate threads_pool 0.2.6 on toolchain caccb4d0368bd918ef6668af8e13834d07040417 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate threads_pool 0.2.6 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded crossbeam-epoch v0.8.2 [INFO] [stderr] Downloaded parking_lot_core v0.4.0 [INFO] [stderr] Downloaded hashbrown v0.1.8 [INFO] [stderr] Downloaded criterion v0.2.11 [INFO] [stderr] Downloaded parking_lot v0.7.1 [INFO] [stderr] Downloaded scopeguard v0.3.3 [INFO] [stderr] Downloaded proc-macro2 v1.0.10 [INFO] [stderr] Downloaded criterion-plot v0.3.1 [INFO] [stderr] Downloaded itoa v0.4.5 [INFO] [stderr] Downloaded winapi-util v0.1.4 [INFO] [stderr] Downloaded cast v0.2.3 [INFO] [stderr] Downloaded stable_deref_trait v1.1.1 [INFO] [stderr] Downloaded smallvec v0.6.13 [INFO] [stderr] Downloaded quote v1.0.3 [INFO] [stderr] Downloaded rand_xoshiro v0.1.0 [INFO] [stderr] Downloaded memchr v2.3.3 [INFO] [stderr] Downloaded hermit-abi v0.1.11 [INFO] [stderr] Downloaded tinytemplate v1.0.3 [INFO] [stderr] Downloaded crossbeam-deque v0.7.3 [INFO] [stderr] Downloaded async-task v3.0.0 [INFO] [stderr] Downloaded ryu v1.0.3 [INFO] [stderr] Downloaded serde v1.0.106 [INFO] [stderr] Downloaded serde_json v1.0.51 [INFO] [stderr] Downloaded itertools v0.8.2 [INFO] [stderr] Downloaded regex-automata v0.1.9 [INFO] [stderr] Downloaded rayon v1.3.0 [INFO] [stderr] Downloaded byteorder v1.3.4 [INFO] [stderr] Downloaded serde_derive v1.0.106 [INFO] [stderr] Downloaded lock_api v0.1.5 [INFO] [stderr] Downloaded libc v0.2.69 [INFO] [stderr] Downloaded memoffset v0.5.4 [INFO] [stderr] Downloaded crossbeam-queue v0.2.1 [INFO] [stderr] Downloaded unicode-width v0.1.7 [INFO] [stderr] Downloaded syn v1.0.17 [INFO] [stderr] Downloaded rayon-core v1.7.0 [INFO] [stderr] Downloaded bstr v0.2.12 [INFO] [stderr] Downloaded csv v1.1.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 716ab25e177f65bf97969e7f4d2cc507109926581f879ce543d77e43e8bede62 [INFO] running `Command { std: "docker" "start" "-a" "716ab25e177f65bf97969e7f4d2cc507109926581f879ce543d77e43e8bede62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "716ab25e177f65bf97969e7f4d2cc507109926581f879ce543d77e43e8bede62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "716ab25e177f65bf97969e7f4d2cc507109926581f879ce543d77e43e8bede62", kill_on_drop: false }` [INFO] [stdout] 716ab25e177f65bf97969e7f4d2cc507109926581f879ce543d77e43e8bede62 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8fd1e98176fc99f3822fd91c32d4d7a0b0c50d583552f7ad64be11f2e5ffb261 [INFO] running `Command { std: "docker" "start" "-a" "8fd1e98176fc99f3822fd91c32d4d7a0b0c50d583552f7ad64be11f2e5ffb261", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling libc v0.2.69 [INFO] [stderr] Compiling stable_deref_trait v1.1.1 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling parking_lot_core v0.4.0 [INFO] [stderr] Compiling scopeguard v0.3.3 [INFO] [stderr] Compiling owning_ref v0.4.1 [INFO] [stderr] Compiling crossbeam-channel v0.3.9 [INFO] [stderr] Compiling async-task v3.0.0 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling smallvec v0.6.13 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling lock_api v0.1.5 [INFO] [stderr] Compiling hashbrown v0.1.8 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling parking_lot v0.7.1 [INFO] [stderr] Compiling threads_pool v0.2.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/debug.rs:12:28 [INFO] [stdout] | [INFO] [stdout] 12 | Ok(val) => (&val == "1"), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 12 - Ok(val) => (&val == "1"), [INFO] [stdout] 12 + Ok(val) => &val == "1" , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | pub use crate::index_mode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the name `close` in the value namespace is first re-exported here [INFO] [stdout] 37 | pub use crate::executor::block_on; [INFO] [stdout] 38 | pub use crate::shared_mode::*; [INFO] [stdout] | --------------------- but the name `close` in the value namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | pub use crate::index_mode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the name `initialize` in the value namespace is first re-exported here [INFO] [stdout] 37 | pub use crate::executor::block_on; [INFO] [stdout] 38 | pub use crate::shared_mode::*; [INFO] [stdout] | --------------------- but the name `initialize` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::sync::atomic::spin_loop_hint`: use hint::spin_loop instead [INFO] [stdout] --> src/model.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | atomic::spin_loop_hint() [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | MULTI_POOL.as_mut() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe { MULTI_POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | / MULTI_POOL.set(PoolStore { [INFO] [stdout] 234 | | store, [INFO] [stdout] 235 | | mutating: AtomicI8::new(0), [INFO] [stdout] 236 | | auto_adjust_period: config.refresh_period(), [INFO] [stdout] 237 | | auto_adjust_handler: None, [INFO] [stdout] 238 | | auto_adjust_register: HashSet::with_capacity(size), [INFO] [stdout] 239 | | }); [INFO] [stdout] | |__________^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:33:22 [INFO] [stdout] | [INFO] [stdout] 33 | unsafe { POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 43 | unsafe { POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | / POOL.set(Pool { [INFO] [stdout] 232 | | store, [INFO] [stdout] 233 | | auto_mode, [INFO] [stdout] 234 | | auto_adjust_handler: handler, [INFO] [stdout] 235 | | }); [INFO] [stdout] | |__________^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.78s [INFO] running `Command { std: "docker" "inspect" "8fd1e98176fc99f3822fd91c32d4d7a0b0c50d583552f7ad64be11f2e5ffb261", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8fd1e98176fc99f3822fd91c32d4d7a0b0c50d583552f7ad64be11f2e5ffb261", kill_on_drop: false }` [INFO] [stdout] 8fd1e98176fc99f3822fd91c32d4d7a0b0c50d583552f7ad64be11f2e5ffb261 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a738ae32b5241500c23c28f83f1b6ec3fe04142a83973432f8bfe4ad8bde20d9 [INFO] running `Command { std: "docker" "start" "-a" "a738ae32b5241500c23c28f83f1b6ec3fe04142a83973432f8bfe4ad8bde20d9", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.106 [INFO] [stderr] Compiling proc-macro2 v1.0.10 [INFO] [stderr] Compiling ryu v1.0.3 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling cast v0.2.3 [INFO] [stderr] Compiling either v1.5.3 [INFO] [stderr] Compiling rayon-core v1.7.0 [INFO] [stderr] Compiling syn v1.0.17 [INFO] [stderr] Compiling itoa v0.4.5 [INFO] [stderr] Compiling crossbeam-queue v0.2.1 [INFO] [stderr] Compiling regex-automata v0.1.9 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling unicode-width v0.1.7 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling rayon v1.3.0 [INFO] [stderr] Compiling quote v1.0.3 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling rand_xoshiro v0.1.0 [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/debug.rs:12:28 [INFO] [stdout] | [INFO] [stdout] 12 | Ok(val) => (&val == "1"), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 12 - Ok(val) => (&val == "1"), [INFO] [stdout] 12 + Ok(val) => &val == "1" , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | pub use crate::index_mode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the name `close` in the value namespace is first re-exported here [INFO] [stdout] 37 | pub use crate::executor::block_on; [INFO] [stdout] 38 | pub use crate::shared_mode::*; [INFO] [stdout] | --------------------- but the name `close` in the value namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | pub use crate::index_mode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the name `initialize` in the value namespace is first re-exported here [INFO] [stdout] 37 | pub use crate::executor::block_on; [INFO] [stdout] 38 | pub use crate::shared_mode::*; [INFO] [stdout] | --------------------- but the name `initialize` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::sync::atomic::spin_loop_hint`: use hint::spin_loop instead [INFO] [stdout] --> src/model.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | atomic::spin_loop_hint() [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | MULTI_POOL.as_mut() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe { MULTI_POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | / MULTI_POOL.set(PoolStore { [INFO] [stdout] 234 | | store, [INFO] [stdout] 235 | | mutating: AtomicI8::new(0), [INFO] [stdout] 236 | | auto_adjust_period: config.refresh_period(), [INFO] [stdout] 237 | | auto_adjust_handler: None, [INFO] [stdout] 238 | | auto_adjust_register: HashSet::with_capacity(size), [INFO] [stdout] 239 | | }); [INFO] [stdout] | |__________^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:33:22 [INFO] [stdout] | [INFO] [stdout] 33 | unsafe { POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 43 | unsafe { POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | / POOL.set(Pool { [INFO] [stdout] 232 | | store, [INFO] [stdout] 233 | | auto_mode, [INFO] [stdout] 234 | | auto_adjust_handler: handler, [INFO] [stdout] 235 | | }); [INFO] [stdout] | |__________^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling criterion-plot v0.3.1 [INFO] [stderr] Compiling serde_json v1.0.51 [INFO] [stderr] Compiling bstr v0.2.12 [INFO] [stderr] Compiling serde_derive v1.0.106 [INFO] [stderr] Compiling csv v1.1.3 [INFO] [stderr] Compiling tinytemplate v1.0.3 [INFO] [stderr] Compiling criterion v0.2.11 [INFO] [stderr] Compiling threads_pool v0.2.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/debug.rs:12:28 [INFO] [stdout] | [INFO] [stdout] 12 | Ok(val) => (&val == "1"), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 12 - Ok(val) => (&val == "1"), [INFO] [stdout] 12 + Ok(val) => &val == "1" , [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | pub use crate::index_mode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the name `close` in the value namespace is first re-exported here [INFO] [stdout] 37 | pub use crate::executor::block_on; [INFO] [stdout] 38 | pub use crate::shared_mode::*; [INFO] [stdout] | --------------------- but the name `close` in the value namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/lib.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | pub use crate::index_mode::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ the name `initialize` in the value namespace is first re-exported here [INFO] [stdout] 37 | pub use crate::executor::block_on; [INFO] [stdout] 38 | pub use crate::shared_mode::*; [INFO] [stdout] | --------------------- but the name `initialize` in the value namespace is also re-exported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::sync::atomic::spin_loop_hint`: use hint::spin_loop instead [INFO] [stdout] --> src/model.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | atomic::spin_loop_hint() [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | MULTI_POOL.as_mut() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe { MULTI_POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/multi.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | / MULTI_POOL.set(PoolStore { [INFO] [stdout] 234 | | store, [INFO] [stdout] 235 | | mutating: AtomicI8::new(0), [INFO] [stdout] 236 | | auto_adjust_period: config.refresh_period(), [INFO] [stdout] 237 | | auto_adjust_handler: None, [INFO] [stdout] 238 | | auto_adjust_register: HashSet::with_capacity(size), [INFO] [stdout] 239 | | }); [INFO] [stdout] | |__________^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:33:22 [INFO] [stdout] | [INFO] [stdout] 33 | unsafe { POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 43 | unsafe { POOL.as_mut() } [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/single.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | / POOL.set(Pool { [INFO] [stdout] 232 | | store, [INFO] [stdout] 233 | | auto_mode, [INFO] [stdout] 234 | | auto_adjust_handler: handler, [INFO] [stdout] 235 | | }); [INFO] [stdout] | |__________^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 32.97s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "a738ae32b5241500c23c28f83f1b6ec3fe04142a83973432f8bfe4ad8bde20d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a738ae32b5241500c23c28f83f1b6ec3fe04142a83973432f8bfe4ad8bde20d9", kill_on_drop: false }` [INFO] [stdout] a738ae32b5241500c23c28f83f1b6ec3fe04142a83973432f8bfe4ad8bde20d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 500bd609ddc2fe2e4f97ba317cb727a15f32a36701e459db16fff6792cb6a19b [INFO] running `Command { std: "docker" "start" "-a" "500bd609ddc2fe2e4f97ba317cb727a15f32a36701e459db16fff6792cb6a19b", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around match arm expression [INFO] [stderr] --> src/debug.rs:12:28 [INFO] [stderr] | [INFO] [stderr] 12 | Ok(val) => (&val == "1"), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 12 - Ok(val) => (&val == "1"), [INFO] [stderr] 12 + Ok(val) => &val == "1" , [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: ambiguous glob re-exports [INFO] [stderr] --> src/lib.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | pub use crate::index_mode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ the name `close` in the value namespace is first re-exported here [INFO] [stderr] 37 | pub use crate::executor::block_on; [INFO] [stderr] 38 | pub use crate::shared_mode::*; [INFO] [stderr] | --------------------- but the name `close` in the value namespace is also re-exported here [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: ambiguous glob re-exports [INFO] [stderr] --> src/lib.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | pub use crate::index_mode::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ the name `initialize` in the value namespace is first re-exported here [INFO] [stderr] 37 | pub use crate::executor::block_on; [INFO] [stderr] 38 | pub use crate::shared_mode::*; [INFO] [stderr] | --------------------- but the name `initialize` in the value namespace is also re-exported here [INFO] [stderr] [INFO] [stderr] warning: use of deprecated function `std::sync::atomic::spin_loop_hint`: use hint::spin_loop instead [INFO] [stderr] --> src/model.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | atomic::spin_loop_hint() [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/multi.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | MULTI_POOL.as_mut() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/multi.rs:47:22 [INFO] [stderr] | [INFO] [stderr] 47 | unsafe { MULTI_POOL.as_mut() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/multi.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | / MULTI_POOL.set(PoolStore { [INFO] [stderr] 234 | | store, [INFO] [stderr] 235 | | mutating: AtomicI8::new(0), [INFO] [stderr] 236 | | auto_adjust_period: config.refresh_period(), [INFO] [stderr] 237 | | auto_adjust_handler: None, [INFO] [stderr] 238 | | auto_adjust_register: HashSet::with_capacity(size), [INFO] [stderr] 239 | | }); [INFO] [stderr] | |__________^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/single.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | unsafe { POOL.as_mut() } [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/single.rs:43:22 [INFO] [stderr] | [INFO] [stderr] 43 | unsafe { POOL.as_mut() } [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/single.rs:231:9 [INFO] [stderr] | [INFO] [stderr] 231 | / POOL.set(Pool { [INFO] [stderr] 232 | | store, [INFO] [stderr] 233 | | auto_mode, [INFO] [stderr] 234 | | auto_adjust_handler: handler, [INFO] [stderr] 235 | | }); [INFO] [stderr] | |__________^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: `threads_pool` (lib) generated 10 warnings (run `cargo fix --lib -p threads_pool` to apply 1 suggestion) [INFO] [stderr] warning: `threads_pool` (lib test) generated 10 warnings (10 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/threads_pool-c2ffa3a1be3629db) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests threads_pool [INFO] [stderr] warning: unnecessary parentheses around match arm expression [INFO] [stderr] --> src/debug.rs:12:28 [INFO] [stderr] | [INFO] [stderr] 12 | Ok(val) => (&val == "1"), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 12 - Ok(val) => (&val == "1"), [INFO] [stderr] 12 + Ok(val) => &val == "1" , [INFO] [stderr] | [INFO] [stderr] [INFO] [stdout] [INFO] [stderr] warning: 1 warning emitted [INFO] [stdout] running 4 tests [INFO] [stderr] [INFO] [stdout] test src/pool.rs - pool::ThreadPool::execute (line 331) ... FAILED [INFO] [stdout] test src/pool.rs - pool::ThreadPool::activate (line 157) ... FAILED [INFO] [stdout] test src/pool.rs - pool::ThreadPool::exec (line 262) ... FAILED [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] [stdout] test src/pool.rs - pool::ThreadPool (line 44) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/pool.rs - pool::ThreadPool::execute (line 331) stdout ---- [INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `id`, which is owned by the current function [INFO] [stdout] --> src/pool.rs:340:18 [INFO] [stdout] | [INFO] [stdout] 11 | pool.execute(|| { [INFO] [stdout] | ^^ may outlive borrowed value `id` [INFO] [stdout] 12 | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 13 | println!("thread {} has been waken after 1 seconds ... ", id); [INFO] [stdout] | -- `id` is borrowed here [INFO] [stdout] | [INFO] [stdout] note: function requires argument type to outlive `'static` [INFO] [stdout] --> src/pool.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pool.execute(|| { [INFO] [stdout] 12 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 13 | | println!("thread {} has been waken after 1 seconds ... ", id); [INFO] [stdout] 14 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] help: to force the closure to take ownership of `id` (and any other referenced variables), use the `move` keyword [INFO] [stdout] | [INFO] [stdout] 11 | pool.execute(move || { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0373`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/pool.rs - pool::ThreadPool::activate (line 157) stdout ---- [INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `id`, which is owned by the current function [INFO] [stdout] --> src/pool.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 25 | pool.exec(|| { [INFO] [stdout] | ^^ may outlive borrowed value `id` [INFO] [stdout] 26 | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 27 | println!("thread {} has been waken after 1 seconds ... ", id); [INFO] [stdout] | -- `id` is borrowed here [INFO] [stdout] | [INFO] [stdout] note: function requires argument type to outlive `'static` [INFO] [stdout] --> src/pool.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pool.exec(|| { [INFO] [stdout] 26 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 27 | | println!("thread {} has been waken after 1 seconds ... ", id); [INFO] [stdout] 28 | | }, true); [INFO] [stdout] | |____________^ [INFO] [stdout] help: to force the closure to take ownership of `id` (and any other referenced variables), use the `move` keyword [INFO] [stdout] | [INFO] [stdout] 25 | pool.exec(move || { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0373`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/pool.rs - pool::ThreadPool::exec (line 262) stdout ---- [INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `id`, which is owned by the current function [INFO] [stdout] --> src/pool.rs:271:15 [INFO] [stdout] | [INFO] [stdout] 11 | pool.exec(|| { [INFO] [stdout] | ^^ may outlive borrowed value `id` [INFO] [stdout] 12 | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 13 | println!("thread {} has been waken after 1 seconds ... ", id); [INFO] [stdout] | -- `id` is borrowed here [INFO] [stdout] | [INFO] [stdout] note: function requires argument type to outlive `'static` [INFO] [stdout] --> src/pool.rs:271:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pool.exec(|| { [INFO] [stdout] 12 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 13 | | println!("thread {} has been waken after 1 seconds ... ", id); [INFO] [stdout] 14 | | }, true); [INFO] [stdout] | |____________^ [INFO] [stdout] help: to force the closure to take ownership of `id` (and any other referenced variables), use the `move` keyword [INFO] [stdout] | [INFO] [stdout] 11 | pool.exec(move || { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0373`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/pool.rs - pool::ThreadPool (line 44) stdout ---- [INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `id`, which is owned by the current function [INFO] [stdout] --> src/pool.rs:66:15 [INFO] [stdout] | [INFO] [stdout] 24 | pool.exec(|| { [INFO] [stdout] | ^^ may outlive borrowed value `id` [INFO] [stdout] 25 | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 26 | println!("thread {} has slept for around 1 second ... ", id); [INFO] [stdout] | -- `id` is borrowed here [INFO] [stdout] | [INFO] [stdout] note: function requires argument type to outlive `'static` [INFO] [stdout] --> src/pool.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pool.exec(|| { [INFO] [stdout] 25 | | thread::sleep(Duration::from_secs(1)); [INFO] [stdout] 26 | | println!("thread {} has slept for around 1 second ... ", id); [INFO] [stdout] 27 | | }, priority); [INFO] [stdout] | |________________^ [INFO] [stdout] help: to force the closure to take ownership of `id` (and any other referenced variables), use the `move` keyword [INFO] [stdout] | [INFO] [stdout] 24 | pool.exec(move || { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0373`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/pool.rs - pool::ThreadPool (line 44) [INFO] [stdout] src/pool.rs - pool::ThreadPool::activate (line 157) [INFO] [stdout] src/pool.rs - pool::ThreadPool::exec (line 262) [INFO] [stdout] src/pool.rs - pool::ThreadPool::execute (line 331) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "500bd609ddc2fe2e4f97ba317cb727a15f32a36701e459db16fff6792cb6a19b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "500bd609ddc2fe2e4f97ba317cb727a15f32a36701e459db16fff6792cb6a19b", kill_on_drop: false }` [INFO] [stdout] 500bd609ddc2fe2e4f97ba317cb727a15f32a36701e459db16fff6792cb6a19b