Struct qutex::Qutex
[−]
[src]
pub struct Qutex<T> { /* fields omitted */ }A lock-free-queue-backed exclusive data lock.
Methods
impl<T> Qutex<T>[src]
fn new(val: T) -> Qutex<T>
Creates and returns a new Qutex.
fn request_lock(self) -> FutureGuard<T>
Returns a new FutureGuard which can be used as a future and will
resolve into a Guard.
unsafe fn push_request(&self, req: Request)
Pushes a lock request onto the queue.
fn get_mut(&mut self) -> Option<&mut T>
Returns a mutable reference to the inner Vec if there are currently
no other copies of this Qutex.
Since this call borrows the inner lock mutably, no actual locking needs to take place---the mutable borrow statically guarantees no locks exist.
fn as_ptr(&self) -> *const T
Returns a reference to the inner value.
This is frought with potential peril.
fn as_mut_ptr(&self) -> *mut T
Returns a mutable reference to the inner value.
Drinking water from the tap in 1850's London would be safer.
unsafe fn process_queue(&self)
Pops the next lock request in the queue if this lock is unlocked.
unsafe fn direct_unlock(&self)
Unlocks this lock and wakes up the next task in the queue.
Trait Implementations
impl<T> From<T> for Qutex<T>[src]
impl<T> Clone for Qutex<T>[src]
fn clone(&self) -> Qutex<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more