#ifndef CORE_MUTEX_HPP #define CORE_MUTEX_HPP #include "core/utils/AlignedData.hpp" #include "core/utils/Check.hpp" #include "core/utils/Error.hpp" namespace Core { class Mutex final { AlignedData<40, 8> mutex; public: Mutex(); Mutex(const Mutex& other) = delete; Mutex(Mutex&& other) = delete; ~Mutex(); Mutex& operator=(const Mutex& other) = delete; Mutex& operator=(Mutex&& other) = delete; check_return Error init(); check_return Error lock(); check_return Error unlock(); }; } #endif