Struct synchronoise::PhaserReadLock [] [src]

pub struct PhaserReadLock { /* fields omitted */ }

Guard struct for a WriterReaderPhaser that allows a reader to perform a "phase flip".

The PhaserReadLock struct allows one to perform a "phase flip" on its parent WriterReaderPhaser. It is held in a std::sync::Mutex in its parent phaser, enforcing that only one reader may be active at once.

The flip_phase call performs a spin-wait while waiting the the currently-active writers to finish. A sleep time may be added between checks by calling flip_with_sleep instead.

Example

{
    let lock = phaser.read_lock().unwrap();
    // swap buffers
    lock.flip_phase();
    // reader now has access to a stable snapshot
} // lock drops, relinquishing the read lock and allowing another reader to lock

Methods

impl PhaserReadLock
[src]

[src]

Wait until all currently-active writer critical sections have completed.

[src]

Wait until all currently-active writer critical sections have completed. While waiting, sleep with the given duration.