VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
tracyLocks.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "vrfutil/profiler.h"
5 
6 
7 const char DtScopedLockDefaultName[] = "DtTracyScopedLock_waiting";
11 template<typename T_Mutex, char const* T_LockName = DtScopedLockDefaultName>
13 {
14 public:
15  DtTracyScopedLock(T_Mutex& m)
16  : lock()
17  {
18  acquire(m);
19  }
20 
21  void acquire(T_Mutex& m)
22  {
23  if (!lock.try_acquire(m))
24  {
26  lock.acquire(m);
27  }
28  };
29 
30  void release()
31  {
32  lock.release();
33  }
34 
35 protected:
36  typename T_Mutex::scoped_lock lock;
37 };
38 
39 
40 const char DtScopedRwLockDefaultName[] = "DtTracyScopedRwLock_waiting";
44 template<typename T_Mutex, char const* T_LockName = DtScopedRwLockDefaultName>
46 {
47 public:
48  DtTracyScopedRwLock(T_Mutex& m, bool writeLock)
49  : lock()
50  {
51  acquire(m, writeLock);
52  };
53 
54  void acquire(T_Mutex& m, bool writeLock = true)
55  {
56  if (!lock.try_acquire(m, writeLock))
57  {
58  DtPROFILEC(T_LockName, tracy::Color::Red);
59  lock.acquire(m, writeLock);
60  }
61  }
62 
64  {
65  DtPROFILEC(T_LockName, tracy::Color::Red);
66  return lock.upgrade_to_writer();
67  }
68 
69  void release()
70  {
71  lock.release();
72  }
73 
75  {
76  return lock.downgrade_to_reader();
77  }
78 
79 protected:
80  typename T_Mutex::scoped_lock lock;
81 };
const char DtScopedLockDefaultName[]
Definition: tracyLocks.h:7
DtTracyScopedLock(T_Mutex &m)
Definition: tracyLocks.h:15
DtTracyScopedRwLock(T_Mutex &m, bool writeLock)
Definition: tracyLocks.h:48
Template around a TBB RW Mutex lock which adds a tracy marker when the lock is waiting on the mutex...
Definition: tracyLocks.h:45
void release()
Definition: tracyLocks.h:30
void acquire(T_Mutex &m, bool writeLock=true)
Definition: tracyLocks.h:54
Template around a TBB Mutex lock which adds a tracy marker when the lock is waiting on the mutex...
Definition: tracyLocks.h:12
bool downgrade_to_reader()
Definition: tracyLocks.h:74
T_Mutex::scoped_lock lock
Definition: tracyLocks.h:80
const char DtScopedRwLockDefaultName[]
Definition: tracyLocks.h:40
void acquire(T_Mutex &m)
Definition: tracyLocks.h:21
void release()
Definition: tracyLocks.h:69
Definition: vrfProfileColors.h:23
T_Mutex::scoped_lock lock
Definition: tracyLocks.h:36
bool upgrade_to_writer()
Definition: tracyLocks.h:63
#define DtPROFILEC(name, color)
Definition: profiler.h:72

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)