THRIFT-3498 C++ library assumes optional function pthread_attr_setschedpolicy is available
Client: C++
Patch: Simon South
PosixThreadFactory.cpp: Test for availability of optional
pthread_attr_setschedpolicy function before including in source code
This closes #754
diff --git a/lib/cpp/src/thrift/concurrency/PosixThreadFactory.cpp b/lib/cpp/src/thrift/concurrency/PosixThreadFactory.cpp
index 47c5034..05a3c02 100644
--- a/lib/cpp/src/thrift/concurrency/PosixThreadFactory.cpp
+++ b/lib/cpp/src/thrift/concurrency/PosixThreadFactory.cpp
@@ -124,9 +124,11 @@
policy_ = PosixThreadFactory::OTHER;
#endif
+#if _POSIX_THREAD_PRIORITY_SCHEDULING > 0
if (pthread_attr_setschedpolicy(&thread_attr, policy_) != 0) {
throw SystemResourceException("pthread_attr_setschedpolicy failed");
}
+#endif
struct sched_param sched_param;
sched_param.sched_priority = priority_;