From afbff6a20a0fb69ad1cdc2b8271e52bf8b4dccec Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Wed, 15 Sep 2021 09:01:48 +0200 Subject: Removed unused 'thread' include --- zencore/thread.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'zencore/thread.cpp') diff --git a/zencore/thread.cpp b/zencore/thread.cpp index fa9da0258..03ecf3215 100644 --- a/zencore/thread.cpp +++ b/zencore/thread.cpp @@ -6,7 +6,6 @@ #include #include #include -#include namespace zen { -- cgit v1.2.3 From bbe9afd7a7e19358b02d6880c4027e27fe5e8b80 Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Wed, 15 Sep 2021 09:03:26 +0200 Subject: Implemented RwLock on non-Windows platforms using std::shared_mutex --- zencore/thread.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'zencore/thread.cpp') diff --git a/zencore/thread.cpp b/zencore/thread.cpp index 03ecf3215..ffc17f79a 100644 --- a/zencore/thread.cpp +++ b/zencore/thread.cpp @@ -5,32 +5,51 @@ #include #include #include -#include + +#if ZEN_PLATFORM_WINDOWS +# include +#endif namespace zen { void RwLock::AcquireShared() { +#if ZEN_PLATFORM_WINDOWS AcquireSRWLockShared((PSRWLOCK)&m_Srw); +#else + m_Mutex.lock_shared(); +#endif } void RwLock::ReleaseShared() { +#if ZEN_PLATFORM_WINDOWS ReleaseSRWLockShared((PSRWLOCK)&m_Srw); +#else + m_Mutex.unlock_shared(); +#endif } void RwLock::AcquireExclusive() { +#if ZEN_PLATFORM_WINDOWS AcquireSRWLockExclusive((PSRWLOCK)&m_Srw); +#else + m_Mutex.lock(); +#endif } void RwLock::ReleaseExclusive() { +#if ZEN_PLATFORM_WINDOWS ReleaseSRWLockExclusive((PSRWLOCK)&m_Srw); +#else + m_Mutex.unlock(); +#endif } Event::Event() -- cgit v1.2.3 From a7d242dceb340a51e7095d80c4b0f8fba8c7f3ae Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Wed, 15 Sep 2021 09:04:40 +0200 Subject: GetCurrentProcess() for non-Windows --- zencore/thread.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'zencore/thread.cpp') diff --git a/zencore/thread.cpp b/zencore/thread.cpp index ffc17f79a..ef04ce8a4 100644 --- a/zencore/thread.cpp +++ b/zencore/thread.cpp @@ -8,6 +8,8 @@ #if ZEN_PLATFORM_WINDOWS # include +#elif ZEN_PLATFORM_LINUX +# include #endif namespace zen { @@ -271,7 +273,11 @@ IsProcessRunning(int pid) int GetCurrentProcessId() { +#if ZEN_PLATFORM_WINDOWS return ::GetCurrentProcessId(); +#else + return getpid(); +#endif } void -- cgit v1.2.3 From 75a2c7015fcba553a5fdae17efcbb47bef8e2463 Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Wed, 15 Sep 2021 09:04:58 +0200 Subject: zen::Sleep() for Linux --- zencore/thread.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'zencore/thread.cpp') diff --git a/zencore/thread.cpp b/zencore/thread.cpp index ef04ce8a4..598466bb4 100644 --- a/zencore/thread.cpp +++ b/zencore/thread.cpp @@ -283,7 +283,11 @@ GetCurrentProcessId() void Sleep(int ms) { +#if ZEN_PLATFORM_WINDOWS ::Sleep(ms); +#else + usleep(ms * 1000U); +#endif } ////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3