2020-11-01 23:13:02 -06:00
|
|
|
#include "storm/thread/CSRWLock.hpp"
|
|
|
|
|
|
|
|
|
|
void CSRWLock::Enter(int32_t forwriting) {
|
2020-11-24 17:29:31 -06:00
|
|
|
#ifdef WHOA_PLATFORM_WIN
|
2020-11-01 23:13:02 -06:00
|
|
|
// TODO
|
|
|
|
|
#endif
|
|
|
|
|
|
2020-11-24 17:29:31 -06:00
|
|
|
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
2020-11-01 23:13:02 -06:00
|
|
|
if (forwriting) {
|
|
|
|
|
pthread_rwlock_wrlock(&this->m_lock);
|
|
|
|
|
} else {
|
|
|
|
|
pthread_rwlock_rdlock(&this->m_lock);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CSRWLock::Leave(int32_t fromwriting) {
|
2020-11-24 17:29:31 -06:00
|
|
|
#ifdef WHOA_PLATFORM_WIN
|
2020-11-01 23:13:02 -06:00
|
|
|
// TODO
|
|
|
|
|
#endif
|
|
|
|
|
|
2020-11-24 17:29:31 -06:00
|
|
|
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
2020-11-01 23:13:02 -06:00
|
|
|
pthread_rwlock_unlock(&this->m_lock);
|
|
|
|
|
#endif
|
|
|
|
|
}
|