1 unstable release

0.1.0 Jul 10, 2024

#1164 in Concurrency

GPL-3.0 license

15KB
62 lines

rust-waitgroup

rust-waitgroup is a lightweight synchronization primitive for managing concurrency in Rust programs, inspired by the waitgroup from Go.

Features

  • Synchronization: Efficiently waits for a collection of threads (or tasks) to complete before proceeding.
  • Lightweight: Minimal overhead with simple API for adding tasks and waiting on their completion.
  • Thread Safety: Ensures thread safety for synchronization across multiple threads.

Getting Started

use rust_waitgroup::WaitGroup;
use std::thread;

let wg = WaitGroup::default();
let n = 10;
for _ in 0..n {
    let wg = wg.clone();
    wg.add(1);
    thread::spawn(move || {
         // do some work
         wg.done();
    });
}
wg.wait();

License

rust-waitgroup source code is available under the GPL License.


lib.rs:

Golang like WaitGroup

No runtime deps