summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/Thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceUtil/Thread.cpp')
-rw-r--r--cpp/src/IceUtil/Thread.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/cpp/src/IceUtil/Thread.cpp b/cpp/src/IceUtil/Thread.cpp
index ba9506965e5..de1d907a4bc 100644
--- a/cpp/src/IceUtil/Thread.cpp
+++ b/cpp/src/IceUtil/Thread.cpp
@@ -413,9 +413,18 @@ bool
IceUtil::ThreadControl::isAlive() const
{
int policy;
+ int ret;
struct sched_param param;
IceUtil::Mutex::Lock lock(_stateMutex);
- return pthread_getschedparam(_id, &policy, &param) == 0;
+
+ ret = pthread_getschedparam(_id, &policy, &param);
+#ifdef __APPLE__
+ if (ret == 0)
+ {
+ ret = pthread_setschedparam(_id, policy, &param);
+ }
+#endif
+ return (ret == 0);
}
void