feat(thread): add SSyncObject destructor

This commit is contained in:
fallenoak 2022-12-29 15:13:33 -06:00 committed by GitHub
parent 8521485e49
commit e5fe4a7e19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View file

@ -12,6 +12,25 @@ SSyncObject::SSyncObject() {
#endif #endif
} }
SSyncObject::~SSyncObject() {
#if defined(WHOA_SYSTEM_WIN)
this->Close();
#endif
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
pthread_mutex_destroy(&this->m_mutex);
#endif
}
void SSyncObject::Close() {
#if defined(WHOA_SYSTEM_WIN)
if (this->m_opaqueData) {
CloseHandle(this->m_opaqueData);
this->m_opaqueData = nullptr;
}
#endif
}
bool SSyncObject::Valid() { bool SSyncObject::Valid() {
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
return this->m_opaqueData != nullptr; return this->m_opaqueData != nullptr;

View file

@ -28,6 +28,7 @@ class SSyncObject {
// Member functions // Member functions
SSyncObject(); SSyncObject();
~SSyncObject();
void Close(); void Close();
bool Valid(); bool Valid();
uint32_t Wait(uint32_t timeoutMs); uint32_t Wait(uint32_t timeoutMs);