Yet another scoped threadpool library for Rust.
yastl
is heavily inspired by the scoped_threadpool
and
scoped_pool
crates. It is mostly a port to modern Rust of the
scoped_pool
crate
use yastl::Pool;
fn main() {
let pool = Pool::new(4);
let mut list = vec![1, 2, 3, 4, 5];
pool.scoped(|scope| {
// since the `scope` guarantees that the threads are finished if it drops,
// we can safely borrow `list` inside here.
for x in list.iter_mut() {
scope.execute(move || {
*x += 2;
});
}
});
assert_eq!(list, vec![3, 4, 5, 6, 7]);
}
coz
: Enable support for thecoz
profiler. Callscoz::thread_init()
in every new thread.
Licensed under the MIT license.