cpp: Deal with systems without sched_get_priority_{min,max} (OpenBSD)
Also make a few tweaks to configure.ac:
- Check for clock_gettime in librt since it seems to be more
widely available.
- Make it clear which AC_CHECK_FUNCS are optional.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@776927 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/cpp/src/concurrency/PosixThreadFactory.cpp b/lib/cpp/src/concurrency/PosixThreadFactory.cpp
index e48dce3..893dc80 100644
--- a/lib/cpp/src/concurrency/PosixThreadFactory.cpp
+++ b/lib/cpp/src/concurrency/PosixThreadFactory.cpp
@@ -227,8 +227,14 @@
*/
static int toPthreadPriority(POLICY policy, PRIORITY priority) {
int pthread_policy = toPthreadPolicy(policy);
- int min_priority = sched_get_priority_min(pthread_policy);
- int max_priority = sched_get_priority_max(pthread_policy);
+ int min_priority = 0;
+ int max_priority = 0;
+#ifdef HAVE_SCHED_GET_PRIORITY_MIN
+ min_priority = sched_get_priority_min(pthread_policy);
+#endif
+#ifdef HAVE_SCHED_GET_PRIORITY_MAX
+ max_priority = sched_get_priority_max(pthread_policy);
+#endif
int quanta = (HIGHEST - LOWEST) + 1;
float stepsperquanta = (max_priority - min_priority) / quanta;