mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 13:25:45 +02:00
multilock: allow turning it off
Add a master switch to turn off the entire MultiLock infrastructure for testing, without having to remove and add all the individual entry points. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
parent
72c3bf8438
commit
606ac01d56
@ -14,6 +14,7 @@ namespace crucible {
|
||||
mutex m_mutex;
|
||||
condition_variable m_cv;
|
||||
map<string, size_t> m_counters;
|
||||
bool m_do_locking = true;
|
||||
|
||||
class LockHandle {
|
||||
const string m_type;
|
||||
@ -33,6 +34,7 @@ namespace crucible {
|
||||
shared_ptr<LockHandle> get_lock_private(const string &type);
|
||||
public:
|
||||
static shared_ptr<LockHandle> get_lock(const string &type);
|
||||
static void enable_locking(bool enabled);
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -62,11 +62,22 @@ namespace crucible {
|
||||
return rv;
|
||||
}
|
||||
|
||||
static MultiLocker s_process_instance;
|
||||
|
||||
shared_ptr<MultiLocker::LockHandle>
|
||||
MultiLocker::get_lock(const string &type)
|
||||
{
|
||||
static MultiLocker s_process_instance;
|
||||
return s_process_instance.get_lock_private(type);
|
||||
if (s_process_instance.m_do_locking) {
|
||||
return s_process_instance.get_lock_private(type);
|
||||
} else {
|
||||
return shared_ptr<MultiLocker::LockHandle>();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MultiLocker::enable_locking(const bool enabled)
|
||||
{
|
||||
s_process_instance.m_do_locking = enabled;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user