feat(thread): add CSRWLock

This commit is contained in:
fallenoak 2020-11-01 23:13:02 -06:00
parent 3b9f061244
commit 26d78adf7a
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 52 additions and 0 deletions

25
storm/thread/CSRWLock.cpp Normal file
View file

@ -0,0 +1,25 @@
#include "storm/thread/CSRWLock.hpp"
void CSRWLock::Enter(int32_t forwriting) {
#ifdef PLATFORM_WIN
// TODO
#endif
#if defined(PLATFORM_MAC) || defined(PLATFORM_LINUX)
if (forwriting) {
pthread_rwlock_wrlock(&this->m_lock);
} else {
pthread_rwlock_rdlock(&this->m_lock);
}
#endif
}
void CSRWLock::Leave(int32_t fromwriting) {
#ifdef PLATFORM_WIN
// TODO
#endif
#if defined(PLATFORM_MAC) || defined(PLATFORM_LINUX)
pthread_rwlock_unlock(&this->m_lock);
#endif
}