flatten 20260225

This commit is contained in:
Timothy Prepscius
2026-02-25 12:43:06 -05:00
commit 996151a56a
521 changed files with 46722 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
// License: Modified MIT (NON-AI)
// See the LICENSE file in the root directory for license information.
// Copyright 2025 Timothy Prepscius
#pragma once
namespace tjp::core {
template<typename SharedMutex>
class SharedLockGuard
{
private:
SharedMutex& m;
bool locked = true;
public:
typedef SharedMutex mutex_type;
explicit SharedLockGuard(SharedMutex& m_):
m(m_)
{
m.lock_shared();
}
SharedLockGuard(SharedMutex& m_,std::adopt_lock_t):
m(m_)
{}
~SharedLockGuard()
{
unlock();
}
void unlock()
{
if (!locked)
return ;
locked = false;
m.unlock_shared();
}
};
} // namespace