/** * @file * @brief Mutex interface definition. */ #ifndef STA_CORE_MUTEX_HPP #define STA_CORE_MUTEX_HPP namespace sta { /** * @brief Interface for mutex objects. */ class Mutex { public: /** * @brief Block until mutex has been acquired. */ virtual void acquire() = 0; /** * @brief Release mutex. */ virtual void release() = 0; static Mutex * ALWAYS_FREE; /**< Fake mutex that can always be acquired */ }; } // namespace sta #endif // STA_CORE_MUTEX_HPP