From 51d1b81451162c0f76586f35c862956be31ebbed Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Sun, 18 Aug 2024 13:53:16 +0800 Subject: [PATCH 4/6] qthread_unix.cpp: fix for macOS --- src/core/thread/qthread_unix.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/thread/qthread_unix.cpp b/src/core/thread/qthread_unix.cpp index 2527052ea..851b26bcd 100644 --- a/src/core/thread/qthread_unix.cpp +++ b/src/core/thread/qthread_unix.cpp @@ -32,6 +32,10 @@ #include #include +#ifdef Q_OS_MAC +#include +#endif + #if defined(QT_HAVE_PRCTL) #include #endif @@ -41,7 +45,7 @@ # define SCHED_IDLE 5 #endif -#if !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) +#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) #define QT_HAS_THREAD_PRIORITY_SCHEDULING #endif @@ -166,6 +170,9 @@ void *QThreadPrivate::start(void *arg) ::prctl(PR_SET_NAME, (unsigned long)objectName.toLocal8Bit().constData(), 0, 0, 0); #elif defined(QT_HAVE_PTHREAD_SETNAME_NP) && defined(Q_OS_NETBSD) pthread_setname_np(thr->d_func()->thread_id, objectName.toLocal8Bit().constData(), (char*)"%s"); +#elif defined(QT_HAVE_PTHREAD_SETNAME_NP) && defined(Q_OS_MAC) + Q_UNUSED(thr->d_func()->thread_id); + pthread_setname_np(objectName.toLocal8Bit().constData()); #elif defined(QT_HAVE_PTHREAD_SETNAME_NP) pthread_setname_np(thr->d_func()->thread_id, objectName.toLocal8Bit().constData()); #endif @@ -229,8 +236,11 @@ Qt::HANDLE QThread::currentThreadId() int QThread::idealThreadCount() { -#ifdef _SC_NPROCESSORS_ONLN +#if defined(_SC_NPROCESSORS_ONLN) return sysconf(_SC_NPROCESSORS_ONLN); +#elif defined(Q_OS_MAC) + cores = MPProcessorsScheduled(); + return cores #else return 1; #endif -- 2.49.0