From 4562c4d1e16afda5e01fcc444a2c2d28c614055c Mon Sep 17 00:00:00 2001 From: OBATA Akio Date: Tue, 4 Aug 2020 18:30:08 +0900 Subject: [PATCH] Fix to detect Thread Execution Scheduling support correctly If `_POSIX_THREAD_PRIORITY_SCHEDULING == 0`, it must be checked with sysconf(_SC_THREAD_PRIORITY_SCHEDULING) at runtime. Signed-off-by: OBATA Akio (cherry picked from commit d61a821ad0c5508dd2e34232370a66034b348886) --- src/kernel/qthread_unix.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/kernel/qthread_unix.cpp b/src/kernel/qthread_unix.cpp index e4d6625..98ca327 100644 --- a/src/kernel/qthread_unix.cpp +++ b/src/kernel/qthread_unix.cpp @@ -314,7 +314,10 @@ void QThread::start(Priority priority) pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); -#if !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) +#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0) +#if _POSIX_THREAD_PRIORITY_SCHEDULING == 0 && defined _SC_THREAD_PRIORITY_SCHEDULING + if (sysconf(_SC_THREAD_PRIORITY_SCHEDULING) > 0) +#endif switch (priority) { case InheritPriority: {