Revert "Attempt at fixing segfault with new std threads impl"

This reverts commit ee2f629911.
This commit is contained in:
Deukhoofd 2022-02-11 13:42:28 +01:00
parent 9c84058e1b
commit 54efff6251
Signed by: Deukhoofd
GPG Key ID: F63E044490819F6F
2 changed files with 9 additions and 13 deletions

View File

@ -198,7 +198,7 @@ public:
bool TryEnter(); bool TryEnter();
protected: protected:
std::unique_ptr<std::mutex> _mutex; std::mutex _mutex;
}; };
class asCThreadReadWriteLock class asCThreadReadWriteLock
@ -215,7 +215,7 @@ public:
void ReleaseShared(); void ReleaseShared();
bool TryAcquireShared(); bool TryAcquireShared();
protected: protected:
std::unique_ptr<std::shared_mutex> _mutex; std::shared_mutex _mutex;
}; };
#endif #endif

View File

@ -349,8 +349,6 @@ asCThreadCriticalSection::asCThreadCriticalSection()
// MinGW also only defines this version // MinGW also only defines this version
InitializeCriticalSection(&cs); InitializeCriticalSection(&cs);
#endif #endif
#elif defined AS_STD_THREADS
_mutex = std::make_unique<std::mutex>();
#endif #endif
} }
@ -370,7 +368,7 @@ void asCThreadCriticalSection::Enter()
#elif defined AS_WINDOWS_THREADS #elif defined AS_WINDOWS_THREADS
EnterCriticalSection(&cs); EnterCriticalSection(&cs);
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
_mutex->lock(); _mutex.lock();
#endif #endif
} }
@ -381,7 +379,7 @@ void asCThreadCriticalSection::Leave()
#elif defined AS_WINDOWS_THREADS #elif defined AS_WINDOWS_THREADS
LeaveCriticalSection(&cs); LeaveCriticalSection(&cs);
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
_mutex->unlock(); _mutex.unlock();
#endif #endif
} }
@ -392,7 +390,7 @@ bool asCThreadCriticalSection::TryEnter()
#elif defined AS_WINDOWS_THREADS #elif defined AS_WINDOWS_THREADS
return TryEnterCriticalSection(&cs) ? true : false; return TryEnterCriticalSection(&cs) ? true : false;
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
return _mutex->try_lock(); return _mutex.try_lock();
#else #else
return true; return true;
#endif #endif
@ -416,8 +414,6 @@ asCThreadReadWriteLock::asCThreadReadWriteLock()
readLocks = CreateSemaphoreW(NULL, maxReaders, maxReaders, 0); readLocks = CreateSemaphoreW(NULL, maxReaders, maxReaders, 0);
InitializeCriticalSection(&writeLock); InitializeCriticalSection(&writeLock);
#endif #endif
#elif defined AS_STD_THREADS
_mutex = std::make_unique<std::shared_mutex>();
#endif #endif
} }
@ -450,7 +446,7 @@ void asCThreadReadWriteLock::AcquireExclusive()
// lock the readers when this writer releases them anyway. // lock the readers when this writer releases them anyway.
LeaveCriticalSection(&writeLock); LeaveCriticalSection(&writeLock);
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
_mutex->lock(); _mutex.lock();
#endif #endif
} }
@ -462,7 +458,7 @@ void asCThreadReadWriteLock::ReleaseExclusive()
// Release all readers at once // Release all readers at once
ReleaseSemaphore(readLocks, maxReaders, 0); ReleaseSemaphore(readLocks, maxReaders, 0);
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
_mutex->unlock(); _mutex.unlock();
#endif #endif
} }
@ -474,7 +470,7 @@ void asCThreadReadWriteLock::AcquireShared()
// Lock a reader slot // Lock a reader slot
WaitForSingleObjectEx(readLocks, INFINITE, FALSE); WaitForSingleObjectEx(readLocks, INFINITE, FALSE);
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
_mutex->lock_shared(); _mutex.lock_shared();
#endif #endif
} }
@ -486,7 +482,7 @@ void asCThreadReadWriteLock::ReleaseShared()
// Release the reader slot // Release the reader slot
ReleaseSemaphore(readLocks, 1, 0); ReleaseSemaphore(readLocks, 1, 0);
#elif defined(AS_STD_THREADS) #elif defined(AS_STD_THREADS)
_mutex->unlock_shared(); _mutex.unlock_shared();
#endif #endif
} }