.. _program_listing_file__tmp_ws_src_ecl_core_ecl_threads_include_ecl_threads_mutex_w32.hpp: Program Listing for File mutex_w32.hpp ====================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/ecl_core/ecl_threads/include/ecl/threads/mutex_w32.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /***************************************************************************** ** Ifdefs *****************************************************************************/ #ifndef ECL_THREADS_MUTEX_W32_HPP_ #define ECL_THREADS_MUTEX_W32_HPP_ /***************************************************************************** ** Platform Check *****************************************************************************/ #include #if defined(ECL_IS_WIN32) /***************************************************************************** ** Includes *****************************************************************************/ #include #include #include "macros.hpp" /***************************************************************************** ** Namespaces *****************************************************************************/ namespace ecl { /***************************************************************************** ** Typedefs *****************************************************************************/ typedef CRITICAL_SECTION RawMutex; /***************************************************************************** ** Class Mutex *****************************************************************************/ class ecl_threads_PUBLIC Mutex { public: Mutex(const bool locked = false); virtual ~Mutex(); void unlock(); void lock(); bool trylock(Duration &duration); bool trylock(); unsigned int locks() { return number_locks; } RawMutex& rawType() { return mutex; } private: RawMutex mutex; unsigned int number_locks; }; } // namespace ecl #endif /* ECL_IS_WIN32 */ #endif /* ECL_THREADS_MUTEX_W32_HPP_ */