[−][src]Struct qt_core::QRecursiveMutex
The QRecursiveMutex class is a mutex, like QMutex, with which it is API-compatible. It differs from QMutex by accepting lock() calls from the same thread any number of times. QMutex would deadlock in this situation.
C++ class: QRecursiveMutex
.
The QRecursiveMutex class is a mutex, like QMutex, with which it is API-compatible. It differs from QMutex by accepting lock() calls from the same thread any number of times. QMutex would deadlock in this situation.
QRecursiveMutex is much more expensive to construct and operate on, so use a plain QMutex whenever you can. Sometimes, one public function, however, calls another public function, and they both need to lock the same mutex. In this case, you have two options:
- Factor the code that needs mutex protection into private functions, which assume that the mutex is held when they are called, and lock a plain QMutex in the public functions before you call the private implementation ones.
- Or use a recursive mutex, so it doesn't matter that the first public function has already locked the mutex when the second one wishes to do so.
Methods
impl QRecursiveMutex
[src]
pub unsafe fn new() -> CppBox<QRecursiveMutex>
[src]
Constructs a new recursive mutex. The mutex is created in an unlocked state.
Calls C++ function: [constructor] void QRecursiveMutex::QRecursiveMutex()
.
Constructs a new recursive mutex. The mutex is created in an unlocked state.
This item is available if cpp_lib_version="5.14.0"
.
Trait Implementations
impl CppDeletable for QRecursiveMutex
[src]
Auto Trait Implementations
impl RefUnwindSafe for QRecursiveMutex
impl Send for QRecursiveMutex
impl Sync for QRecursiveMutex
impl Unpin for QRecursiveMutex
impl UnwindSafe for QRecursiveMutex
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> CastInto<U> for T where
U: CastFrom<T>,
[src]
U: CastFrom<T>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> StaticUpcast<T> for T
[src]
unsafe fn static_upcast(ptr: Ptr<T>) -> Ptr<T>
[src]
unsafe fn static_upcast_mut(ptr: MutPtr<T>) -> MutPtr<T>
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,