diff --git a/angelscript/source/as_criticalsection.h b/angelscript/source/as_criticalsection.h index 7915e46..b05c224 100644 --- a/angelscript/source/as_criticalsection.h +++ b/angelscript/source/as_criticalsection.h @@ -198,7 +198,7 @@ public: bool TryEnter(); protected: - std::mutex* _mutex; + std::unique_ptr _mutex; }; class asCThreadReadWriteLock @@ -215,7 +215,7 @@ public: void ReleaseShared(); bool TryAcquireShared(); protected: - std::shared_mutex* _mutex; + std::unique_ptr _mutex; }; #endif diff --git a/angelscript/source/as_thread.cpp b/angelscript/source/as_thread.cpp index 25066d3..83f7e22 100644 --- a/angelscript/source/as_thread.cpp +++ b/angelscript/source/as_thread.cpp @@ -350,7 +350,7 @@ asCThreadCriticalSection::asCThreadCriticalSection() InitializeCriticalSection(&cs); #endif #elif defined AS_STD_THREADS - _mutex = new std::mutex(); + _mutex = std::make_unique(); #endif } @@ -360,8 +360,6 @@ asCThreadCriticalSection::~asCThreadCriticalSection() pthread_mutex_destroy(&cs); #elif defined AS_WINDOWS_THREADS DeleteCriticalSection(&cs); -#elif defined AS_STD_THREADS - delete _mutex; #endif } @@ -419,7 +417,7 @@ asCThreadReadWriteLock::asCThreadReadWriteLock() InitializeCriticalSection(&writeLock); #endif #elif defined AS_STD_THREADS - _mutex = new std::shared_mutex(); + _mutex = std::make_unique(); #endif } @@ -430,8 +428,6 @@ asCThreadReadWriteLock::~asCThreadReadWriteLock() #elif defined AS_WINDOWS_THREADS DeleteCriticalSection(&writeLock); CloseHandle(readLocks); -#elif defined AS_STD_THREADS - delete _mutex; #endif }