#ifndef STA_MUTEX_HPP #define STA_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_MUTEX_HPP