Files
core_zero/tjp/core/threads/TryLockGuard.hpp
Timothy Prepscius 996151a56a flatten 20260225
2026-02-25 12:43:06 -05:00

35 lines
451 B
C++
Executable File

// 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 T>
class TryLockGuard
{
public:
T &m;
bool locked = false;
explicit TryLockGuard(T &m_) :
m(m_)
{
locked = m.try_lock();
}
~TryLockGuard()
{
if (locked)
m.unlock();
}
operator bool() const
{
return locked;
}
};
} // namespace