Expand description

pythonic_global_lock

This crate provides a GLock<T>, that is globally locked. Every GLock<T> uses the same global lock, so locking on will lock all. Sounds like a dumb idea? One of the most popular programming implementations does it, so it must be smart.

fn main() {
    let lock1 = pythonic_global_lock::GLock::new(1);
    let lock2 = pythonic_global_lock::GLock::new(2);

    {
        let locked1 = lock1.lock();
        println!("{}", &*locked1)
        // locking lock2 here would be a deadlock
    }
}

Structs

A global lock that locks every GLock using the same global lock (like the GIL in cpython lmao)

A guard that guards a globally locked value