diff --git a/Libraries/LibThreading/BackgroundAction.cpp b/Libraries/LibThreading/BackgroundAction.cpp index 8cdbf99e21d..0a51c0e7994 100644 --- a/Libraries/LibThreading/BackgroundAction.cpp +++ b/Libraries/LibThreading/BackgroundAction.cpp @@ -9,7 +9,6 @@ #include #include #include -#include static pthread_mutex_t s_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t s_condition = PTHREAD_COND_INITIALIZER; diff --git a/Libraries/LibThreading/CMakeLists.txt b/Libraries/LibThreading/CMakeLists.txt index a242b3f206e..6b3307687c1 100644 --- a/Libraries/LibThreading/CMakeLists.txt +++ b/Libraries/LibThreading/CMakeLists.txt @@ -5,3 +5,9 @@ set(SOURCES serenity_lib(LibThreading threading) target_link_libraries(LibThreading PRIVATE LibCore) + +if (WIN32) + find_package(pthread REQUIRED) + target_include_directories(LibThreading PRIVATE ${PTHREAD_INCLUDE_DIR}) + target_link_libraries(LibThreading PUBLIC ${PTHREAD_LIBRARY}) +endif() diff --git a/Libraries/LibThreading/Thread.cpp b/Libraries/LibThreading/Thread.cpp index db74239d89f..328a2b36add 100644 --- a/Libraries/LibThreading/Thread.cpp +++ b/Libraries/LibThreading/Thread.cpp @@ -5,9 +5,6 @@ */ #include -#include -#include -#include namespace Threading { diff --git a/Libraries/LibThreading/Thread.h b/Libraries/LibThreading/Thread.h index 10fce0c8103..c0a9a0a0af7 100644 --- a/Libraries/LibThreading/Thread.h +++ b/Libraries/LibThreading/Thread.h @@ -79,7 +79,7 @@ public: private: explicit Thread(ESCAPING Function action, StringView thread_name = {}); Function m_action; - pthread_t m_tid { 0 }; + pthread_t m_tid {}; ByteString m_thread_name; Atomic m_state { ThreadState::Startable }; }; @@ -108,6 +108,16 @@ Result Thread::join() } +#ifdef AK_OS_WINDOWS +template<> +struct AK::Formatter : AK::Formatter { + ErrorOr format(FormatBuilder& builder, pthread_t const& tid) + { + return Formatter::format(builder, "{}"sv, pthread_getw32threadid_np(tid)); + } +}; +#endif + template<> struct AK::Formatter : AK::Formatter { ErrorOr format(FormatBuilder& builder, Threading::Thread const& thread)