squall/storm/thread/CSRWLock.hpp

31 lines
588 B
C++
Raw Permalink Normal View History

2020-11-01 23:13:02 -06:00
#ifndef STORM_THREAD_CS_RW_LOCK_HPP
#define STORM_THREAD_CS_RW_LOCK_HPP
#include <cstdint>
2020-12-02 20:04:02 -06:00
#if defined(WHOA_SYSTEM_WIN)
#include "storm/thread/win/SRWLock.hpp"
#endif
2020-12-02 20:04:02 -06:00
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
2020-11-01 23:13:02 -06:00
#include <pthread.h>
#endif
class CSRWLock {
public:
// Member variables
2020-12-02 20:04:02 -06:00
#if defined(WHOA_SYSTEM_WIN)
SRWLock::SURWLOCK m_opaqueData;
2020-11-01 23:13:02 -06:00
#endif
2020-12-02 20:04:02 -06:00
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
2020-11-01 23:13:02 -06:00
pthread_rwlock_t m_lock;
#endif
// Member functions
void Enter(int32_t forwriting);
void Leave(int32_t fromwriting);
};
#endif