Try fix plugin reload while loading.

This commit is contained in:
Martín Lucas Golini
2023-10-26 11:05:13 -03:00
parent 6f5c45a408
commit d98023d9aa
7 changed files with 42 additions and 16 deletions

View File

@@ -1,6 +1,7 @@
#ifndef EE_SYSTEM_SCOPEDOP_HPP
#define EE_SYSTEM_SCOPEDOP_HPP
#include <atomic>
#include <functional>
namespace EE { namespace System {
@@ -36,6 +37,21 @@ class BoolScopedOp {
bool& boolRef;
};
class AtomicBoolScopedOp {
public:
explicit AtomicBoolScopedOp( std::atomic<bool>& boolRef ) : boolRef( boolRef ) {}
explicit AtomicBoolScopedOp( std::atomic<bool>& boolRef, bool initialVal ) :
boolRef( boolRef ) {
boolRef = initialVal;
}
~AtomicBoolScopedOp() { boolRef = !boolRef; }
private:
std::atomic<bool>& boolRef;
};
class BoolScopedOpOptional {
public:
explicit BoolScopedOpOptional( bool cond, bool& boolRef ) : cond( cond ), boolRef( boolRef ) {}