LibThreading: Fix building the library on macOS

This commit is contained in:
Gunnar Beutner 2021-07-06 00:06:32 +02:00
parent 565796ae4e
commit 01db5205ab
Notes: sideshowbarker 2024-07-18 10:20:42 +09:00
2 changed files with 14 additions and 1 deletions

View file

@ -108,6 +108,8 @@ include_directories(../../Userland/)
include_directories(../../Userland/Libraries/) include_directories(../../Userland/Libraries/)
include_directories(${CMAKE_BINARY_DIR}) include_directories(${CMAKE_BINARY_DIR})
add_library(LagomCore ${LAGOM_CORE_SOURCES}) add_library(LagomCore ${LAGOM_CORE_SOURCES})
find_package(Threads REQUIRED)
target_link_libraries(LagomCore PRIVATE Threads::Threads)
if (BUILD_LAGOM) if (BUILD_LAGOM)
add_library(Lagom $<TARGET_OBJECTS:LagomCore> ${LAGOM_MORE_SOURCES}) add_library(Lagom $<TARGET_OBJECTS:LagomCore> ${LAGOM_MORE_SOURCES})

View file

@ -14,14 +14,25 @@ namespace Threading {
class Lock { class Lock {
public: public:
Lock() { } Lock() {
#ifndef __serenity__
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&m_mutex, &attr);
#endif
}
~Lock() { } ~Lock() { }
void lock(); void lock();
void unlock(); void unlock();
private: private:
#ifdef __serenity__
pthread_mutex_t m_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; pthread_mutex_t m_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
#else
pthread_mutex_t m_mutex;
#endif
}; };
class Locker { class Locker {