Crates.io | thread-counter |
lib.rs | thread-counter |
version | 0.1.1 |
source | src |
created_at | 2024-10-08 17:28:34.371471 |
updated_at | 2024-10-10 21:04:37.993425 |
description | A simple way of efficiently keeping track of active threads and waiting for them to exit. |
homepage | |
repository | https://github.com/Absolucy/thread-counter-rs |
max_upload_size | |
id | 1401463 |
size | 27,416 |
A lightweight, thread-safe library for counting and synchronizing concurrent operations.
This crate provides a ThreadCounter
type that can be used to keep track
of the number of active threads or operations, and to synchronize the
completion of these operations. It's particularly useful for scenarios where
you need to wait for a group of tasks to complete before proceeding.
Ticket
s.Here's a basic example of how to use the ThreadCounter
:
use std::{thread, time::Duration};
use thread_counter::ThreadCounter;
let counter = ThreadCounter::default();
// Spawn some threads
for _ in 0..5 {
thread::spawn(move || {
// Take a ticket, incrementing the counter.
let ticket = counter.ticket();
// Simulate some work
thread::sleep(Duration::from_millis(100));
// `ticket` is automatically dropped here, decrementing the counter
});
}
// Wait for all threads to complete, timing out after 200ms.
counter.wait(Duration::from_millis(200));
println!("All threads have completed!");
Current version: 0.1.0
Some additional info here
thread-counter
is dual-licensed under the MIT license and the Apache License (Version 2.0).