aboutsummaryrefslogtreecommitdiff
path: root/tests/named-threads.rs
blob: dadb37ba6bd96505e68ae813439b441cadeb46b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use std::collections::HashSet;

use rayon::prelude::*;
use rayon::*;

#[test]
#[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)]
fn named_threads() {
    ThreadPoolBuilder::new()
        .thread_name(|i| format!("hello-name-test-{}", i))
        .build_global()
        .unwrap();

    const N: usize = 10000;

    let thread_names = (0..N)
        .into_par_iter()
        .flat_map(|_| ::std::thread::current().name().map(str::to_owned))
        .collect::<HashSet<String>>();

    let all_contains_name = thread_names
        .iter()
        .all(|name| name.starts_with("hello-name-test-"));
    assert!(all_contains_name);
}