feat(thread): add SSemaphore

This commit is contained in:
fallenoak 2021-08-09 00:16:03 -05:00
parent 83cd9b05c0
commit 6437796094
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,15 @@
#include "storm/thread/SSemaphore.hpp"
SSemaphore::SSemaphore(uint32_t initialCount, uint32_t maximumCount)
: SSyncObject() {
#if defined(WHOA_SYSTEM_WIN)
this->m_opaqueData = CreateSemaphoreA(nullptr, initialCount, maximumCount, nullptr);
#endif
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
this->m_value1 = initialCount;
this->m_value2 = maximumCount;
this->int0 = 4;
pthread_cond_init(&this->m_cond, 0);
#endif
}

View file

@ -0,0 +1,13 @@
#ifndef STORM_THREAD_S_SEMAPHORE_HPP
#define STORM_THREAD_S_SEMAPHORE_HPP
#include "storm/thread/SSyncObject.hpp"
#include <cstdint>
class SSemaphore : public SSyncObject {
public:
// Member functions
SSemaphore(uint32_t initialCount, uint32_t maximumCount);
};
#endif