mirror of
https://github.com/quizhizhe/LiteLoaderBDS-1.16.40.git
synced 2025-06-06 12:03:39 +00:00
32 lines
548 B
C++
32 lines
548 B
C++
#pragma once
|
|
#include "../Global.h"
|
|
#include <windows.h>
|
|
|
|
// ===== Critical Section Locker =====
|
|
// a simple lock which is much faster than std::mutex
|
|
|
|
class CsLock {
|
|
bool inited = false;
|
|
CRITICAL_SECTION cslock;
|
|
|
|
public:
|
|
LIAPI CsLock();
|
|
LIAPI ~CsLock();
|
|
LIAPI bool tryLock();
|
|
LIAPI bool lock();
|
|
LIAPI bool unlock();
|
|
};
|
|
|
|
class CsLockHolder {
|
|
CsLock& locker;
|
|
|
|
public:
|
|
LIAPI CsLockHolder(CsLock& lock)
|
|
: locker(lock) {
|
|
locker.lock();
|
|
}
|
|
LIAPI ~CsLockHolder() {
|
|
locker.unlock();
|
|
}
|
|
};
|