//! Plain, uninstrumented wrappers around [`parking_lot`] lock types. //! //! These definitions are used when no particular lock instrumentation //! Cargo feature is selected.
use core::{fmt, ops};
usecrate::lock::rank::LockRank;
pubstruct RankData;
/// A plain wrapper around [`parking_lot::Mutex`]. /// /// This is just like [`parking_lot::Mutex`], except that our [`new`] /// method takes a rank, indicating where the new mutex should sit in /// `wgpu-core`'s lock ordering. The rank is ignored. /// /// See the [`lock`] module documentation for other wrappers. /// /// [`new`]: Mutex::new /// [`lock`]: crate::lock pubstruct Mutex<T>(parking_lot::Mutex<T>);
/// A guard produced by locking [`Mutex`]. /// /// This is just a wrapper around a [`parking_lot::MutexGuard`]. pubstruct MutexGuard<'a, T>(parking_lot::MutexGuard<'a, T>);
/// A plain wrapper around [`parking_lot::RwLock`]. /// /// This is just like [`parking_lot::RwLock`], except that our [`new`] /// method takes a rank, indicating where the new mutex should sit in /// `wgpu-core`'s lock ordering. The rank is ignored. /// /// See the [`lock`] module documentation for other wrappers. /// /// [`new`]: RwLock::new /// [`lock`]: crate::lock pubstruct RwLock<T>(parking_lot::RwLock<T>);
/// A read guard produced by locking [`RwLock`] as a reader. /// /// This is just a wrapper around a [`parking_lot::RwLockReadGuard`]. pubstruct RwLockReadGuard<'a, T>(parking_lot::RwLockReadGuard<'a, T>);
/// A write guard produced by locking [`RwLock`] as a writer. /// /// This is just a wrapper around a [`parking_lot::RwLockWriteGuard`]. pubstruct RwLockWriteGuard<'a, T>(parking_lot::RwLockWriteGuard<'a, T>);
/// Force an read-unlock operation on this lock. /// /// Safety: /// - A read lock must be held which is not held by a guard. pubunsafefn force_unlock_read(&self, _data: RankData) { unsafe { self.0.force_unlock_read() };
}
}
impl<'a, T> RwLockReadGuard<'a, T> { // Forget the read guard, leaving the lock in a locked state with no guard. // // Equivalent to std::mem::forget, but preserves the information about the lock // rank. pubfn forget(this: Self) -> RankData {
core::mem::forget(this.0);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.