mtxgroup

Crates.iomtxgroup
lib.rsmtxgroup
version0.1.1
sourcesrc
created_at2023-11-24 12:53:33.535572
updated_at2023-11-24 13:00:46.517224
descriptionmutex group locks all mutexes at the same time
homepage
repositoryhttps://github.com/Coekjan/mtxgroup
max_upload_size
id1046994
size7,057
Yip Coekjan (Coekjan)

documentation

README

MuTeX GROUP

Introduction

MuTeX GROUP can be used to lock all mutexes at the same time.

Example

static MUTEX_0: Mutex<usize> = Mutex::new(0);
static MUTEX_1: Mutex<usize> = Mutex::new(1);
static MUTEX_2: Mutex<usize> = Mutex::new(2);

let mutexes = vec![&MUTEX_0, &MUTEX_1, &MUTEX_2];
let mtxgroup = MutexGroup::new(mutexes.into_iter());
let guard = mtxgroup.lock(); // Locks all mutexes at the same time

for mutex in guard.iter() {
    // Do something with the mutexes
}

for mut mutex in guard.into_iter() { // `into_iter` consumes the guard
    // Do something with the mutexes
}

Features

  • Compliable with no_std
    • requires spin crate

License

Licensed under MIT license

Commit count: 2

cargo fmt