#twitter #algorithm #semaphore #permit

simple-semaphore

🔐 A lightweight implementation of a Semaphore in Rust

4 releases

0.2.0 Jan 14, 2025
0.1.2 Dec 8, 2024
0.1.1 Dec 8, 2024
0.1.0 Oct 19, 2024

#362 in Concurrency

Download history 12/week @ 2024-11-28 206/week @ 2024-12-05 54/week @ 2024-12-12 9/week @ 2024-12-19 12/week @ 2025-01-02 113/week @ 2025-01-09 89/week @ 2025-01-16 1/week @ 2025-01-23 4/week @ 2025-01-30 37/week @ 2025-02-06 111/week @ 2025-02-13 108/week @ 2025-02-20 63/week @ 2025-02-27 16/week @ 2025-03-06

191 downloads per month
Used in project-absence

MIT license

8KB
64 lines

simple-semaphore

Docs.rs Badge Crates.io Badge CI Badge Dependency Status Badge

Discord Server Badge Last Commit Badge Conventional Commits Badge


A lightweight implementation of a Semaphore in Rust.

Getting Started

Installation

If you want to use this library for one of your projects, you can install it like any other Rust library

cargo add simple-semaphore

Example Usage

Here a basic example on how to use the crate:

use simple_semaphore;
use std::thread;
use std::{sync::Arc, time::Duration};

fn main() {
    let semaphore = simple_semaphore::Semaphore::new(2);
    for _ in 0..5 {
        let semaphore = Arc::clone(&semaphore);
        thread::spawn(move || {
            let permit = semaphore.acquire();
            thread::sleep(Duration::from_millis(500));
            drop(permit);
        });
    }
    thread::sleep(Duration::from_millis(3000));
}

License

This library was made with 💜 by Krypton and is under the MIT License.

Dependencies

~81KB