30 #ifndef __WINH_OBJ_H__ 31 #define __WINH_OBJ_H__ 33 #include <boost/chrono/duration.hpp> 34 #include <boost/thread/condition_variable.hpp> 35 #include <boost/thread/locks.hpp> 36 #include <boost/thread/mutex.hpp> 37 #include <boost/thread/recursive_mutex.hpp> 38 #include <boost/thread/thread.hpp> 47 static unsigned int value = 0;
60 boost::unique_lock<boost::mutex> lock(
m_mx);
67 boost::unique_lock<boost::mutex> lock(
m_mx);
79 class critical_region;
123 template<
class t_lock>
153 #define CRITICAL_REGION_LOCAL(x) {} epee::critical_region_t<decltype(x)> critical_region_var(x) 154 #define CRITICAL_REGION_BEGIN(x) { boost::this_thread::sleep_for(boost::chrono::milliseconds(epee::debug::g_test_dbg_lock_sleep())); epee::critical_region_t<decltype(x)> critical_region_var(x) 155 #define CRITICAL_REGION_LOCAL1(x) {boost::this_thread::sleep_for(boost::chrono::milliseconds(epee::debug::g_test_dbg_lock_sleep()));} epee::critical_region_t<decltype(x)> critical_region_var1(x) 156 #define CRITICAL_REGION_BEGIN1(x) { boost::this_thread::sleep_for(boost::chrono::milliseconds(epee::debug::g_test_dbg_lock_sleep())); epee::critical_region_t<decltype(x)> critical_region_var1(x) 158 #define CRITICAL_REGION_END() } bool tryLock()
Definition: syncobj.h:110
bool m_rised
Definition: syncobj.h:76
t_lock & m_locker
Definition: syncobj.h:126
critical_section & operator=(const critical_section §ion)
Definition: syncobj.h:116
simple_event()
Definition: syncobj.h:54
void lock()
Definition: syncobj.h:99
unsigned int & g_test_dbg_lock_sleep()
Definition: syncobj.h:45
critical_section()
Definition: syncobj.h:91
bool m_unlocked
Definition: syncobj.h:127
critical_region_t(const critical_region_t &)
Definition: syncobj.h:129
void wait()
Definition: syncobj.h:65
critical_region_t(t_lock &cs)
Definition: syncobj.h:132
#define false
Definition: stdbool.h:37
~critical_section()
Definition: syncobj.h:95
void unlock()
Definition: syncobj.h:105
void unlock()
Definition: syncobj.h:142
boost::condition_variable m_cond_var
Definition: syncobj.h:75
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:39
boost::recursive_mutex m_section
Definition: syncobj.h:83
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
boost::mutex m_mx
Definition: syncobj.h:74
~critical_region_t()
Definition: syncobj.h:137
Definition: syncobj.h:124
cs
Definition: cold_signing.py:256
critical_section(const critical_section §ion)
Definition: syncobj.h:87