mutex_w32.hpp
Go to the documentation of this file.
00001 
00010 /*****************************************************************************
00011 ** Ifdefs
00012 *****************************************************************************/
00013 
00014 #ifndef ECL_THREADS_MUTEX_W32_HPP_
00015 #define ECL_THREADS_MUTEX_W32_HPP_
00016 
00017 /*****************************************************************************
00018 ** Platform Check
00019 *****************************************************************************/
00020 
00021 #include <ecl/config/ecl.hpp>
00022 #if defined(ECL_IS_WIN32)
00023 
00024 /*****************************************************************************
00025 ** Includes
00026 *****************************************************************************/
00027 
00028 #include <windows.h>
00029 #include <ecl/time/duration.hpp>
00030 #include "macros.hpp"
00031 
00032 
00033 /*****************************************************************************
00034 ** Namespaces
00035 *****************************************************************************/
00036 
00037 namespace ecl {
00038 
00039 /*****************************************************************************
00040 ** Typedefs
00041 *****************************************************************************/
00042 
00043 typedef CRITICAL_SECTION RawMutex; 
00045 /*****************************************************************************
00046 ** Class Mutex
00047 *****************************************************************************/
00058 class ecl_threads_PUBLIC Mutex {
00059 public:
00067         Mutex(const bool locked = false);
00073         virtual ~Mutex();
00074 
00080         void unlock();
00086         void lock();
00098         bool trylock(Duration &duration);
00107         bool trylock();
00117         unsigned int locks() { return number_locks; }
00118 
00125         RawMutex& rawType() { return mutex; }
00126 
00127 private:
00128         RawMutex mutex;
00129         unsigned int number_locks;
00130 
00131 };
00132 
00133 }; // namespace ecl
00134 
00135 
00136 #endif /* ECL_IS_WIN32 */
00137 #endif /* ECL_THREADS_MUTEX_W32_HPP_ */


ecl_threads
Author(s): Daniel Stonier
autogenerated on Thu Jun 6 2019 21:18:01