18INLINE
void MutexDebug::
20 TAU_PROFILE(
"void MutexDebug::acquire()",
" ", TAU_USER);
23 _global_lock->unlock();
30INLINE
bool MutexDebug::
32 TAU_PROFILE(
"void MutexDebug::try_lock()",
" ", TAU_USER);
35 _global_lock->unlock();
43INLINE
void MutexDebug::
45 TAU_PROFILE(
"void MutexDebug::unlock()",
" ", TAU_USER);
47 ((MutexDebug *)
this)->do_unlock();
48 _global_lock->unlock();
61INLINE
void MutexDebug::
62acquire(
Thread *current_thread)
const {
63 TAU_PROFILE(
"void MutexDebug::acquire(Thread *)",
" ", TAU_USER);
66 ((MutexDebug *)
this)->do_lock(current_thread);
67 _global_lock->unlock();
74INLINE
bool MutexDebug::
75try_acquire(
Thread *current_thread)
const {
76 TAU_PROFILE(
"void MutexDebug::try_acquire(Thread *)",
" ", TAU_USER);
79 bool acquired = ((MutexDebug *)
this)->do_try_lock(current_thread);
80 _global_lock->unlock();
94INLINE
void MutexDebug::
96 TAU_PROFILE(
"void MutexDebug::elevate_lock()",
" ", TAU_USER);
99 nassertv(_allow_recursion);
102 nassertv(debug_is_locked());
114INLINE
void MutexDebug::
116 TAU_PROFILE(
"void MutexDebug::release()",
" ", TAU_USER);
117 _global_lock->lock();
118 ((MutexDebug *)
this)->do_unlock();
119 _global_lock->unlock();
128INLINE
bool MutexDebug::
129debug_is_locked()
const {
130 TAU_PROFILE(
"bool MutexDebug::debug_is_locked()",
" ", TAU_USER);
131 _global_lock->lock();
132 bool is_locked = do_debug_is_locked();
133 _global_lock->unlock();
145 if (_global_lock ==
nullptr) {
A fake mutex implementation for single-threaded applications that don't need any synchronization cont...
A thread; that is, a lightweight process.
get_current_thread
Returns a pointer to the currently-executing Thread object.