From c95d07f893f510c270e214445f628e20173d62f1 Mon Sep 17 00:00:00 2001 From: Jason Thorpe Date: Tue, 29 Oct 2002 18:23:02 +0000 Subject: [PATCH] gthr-posix.h: Include for feature tests. * gthr-posix.h: Include for feature tests. (sched_get_priority_max, sched_get_priority_min) (pthread_getschedparam, pthread_setschedparam): Only use if _POSIX_THREAD_PRIORITY_SCHEDULING is defined. (__gthread_objc_thread_set_priority): Don't treat all non-zero returns from sched_get_priority_max and sched_get_priority_min as an error. From-SVN: r58630 --- gcc/ChangeLog | 10 ++++++++++ gcc/gthr-posix.h | 17 ++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c95a2477889..b64d04531e6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2002-10-29 Jason Thorpe + + * gthr-posix.h: Include for feature tests. + (sched_get_priority_max, sched_get_priority_min) + (pthread_getschedparam, pthread_setschedparam): Only use + if _POSIX_THREAD_PRIORITY_SCHEDULING is defined. + (__gthread_objc_thread_set_priority): Don't treat all non-zero + returns from sched_get_priority_max and sched_get_priority_min + as an error. + 2002-10-29 Kazu Hirata * config/h8300/h8300.h (TARGET_DEFAULT): Make it diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h index 80f6ff742a2..463cae07054 100644 --- a/gcc/gthr-posix.h +++ b/gcc/gthr-posix.h @@ -35,6 +35,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define __GTHREADS 1 #include +#include typedef pthread_key_t __gthread_key_t; typedef pthread_once_t __gthread_once_t; @@ -67,15 +68,21 @@ typedef pthread_mutex_t __gthread_mutex_t; #pragma weak pthread_mutex_init #pragma weak pthread_mutex_destroy #pragma weak pthread_self +/* These really should be protected by _POSIX_PRIORITY_SCHEDULING, but + we use them inside a _POSIX_THREAD_PRIORITY_SCHEDULING block. */ +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING #pragma weak sched_get_priority_max #pragma weak sched_get_priority_min +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ #pragma weak sched_yield #pragma weak pthread_attr_destroy #pragma weak pthread_attr_init #pragma weak pthread_attr_setdetachstate +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING #pragma weak pthread_getschedparam #pragma weak pthread_setschedparam -#endif +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ +#endif /* _LIBOBJC */ static inline int __gthread_active_p (void) @@ -173,6 +180,7 @@ __gthread_objc_thread_set_priority(int priority) if (!__gthread_active_p()) return -1; else { +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING pthread_t thread_id = pthread_self(); int policy; struct sched_param params; @@ -180,10 +188,10 @@ __gthread_objc_thread_set_priority(int priority) if (pthread_getschedparam(thread_id, &policy, ¶ms) == 0) { - if ((priority_max = sched_get_priority_max(policy)) != 0) + if ((priority_max = sched_get_priority_max(policy)) == -1) return -1; - if ((priority_min = sched_get_priority_min(policy)) != 0) + if ((priority_min = sched_get_priority_min(policy)) == -1) return -1; if (priority > priority_max) @@ -200,6 +208,7 @@ __gthread_objc_thread_set_priority(int priority) if (pthread_setschedparam(thread_id, policy, ¶ms) == 0) return 0; } +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ return -1; } } @@ -208,6 +217,7 @@ __gthread_objc_thread_set_priority(int priority) static inline int __gthread_objc_thread_get_priority(void) { +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING if (__gthread_active_p ()) { int policy; @@ -219,6 +229,7 @@ __gthread_objc_thread_get_priority(void) return -1; } else +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ return OBJC_THREAD_INTERACTIVE_PRIORITY; } -- 2.30.2