1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef MUTEX_H
- #define MUTEX_H
- #include "core/error_list.h"
- class Mutex {
- protected:
- static Mutex *(*create_func)(bool);
- public:
- virtual void lock() = 0;
- virtual void unlock() = 0;
- virtual Error try_lock() = 0;
- static Mutex *create(bool p_recursive = true);
- virtual ~Mutex();
- };
- class MutexLock {
- Mutex *mutex;
- public:
- MutexLock(Mutex *p_mutex) {
- mutex = p_mutex;
- if (mutex) mutex->lock();
- }
- ~MutexLock() {
- if (mutex) mutex->unlock();
- }
- };
- #endif
|