diff options
Diffstat (limited to 'cpp/src/IceUtil/Thread.cpp')
-rw-r--r-- | cpp/src/IceUtil/Thread.cpp | 11 |
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, ¶m) == 0; + + ret = pthread_getschedparam(_id, &policy, ¶m); +#ifdef __APPLE__ + if (ret == 0) + { + ret = pthread_setschedparam(_id, policy, ¶m); + } +#endif + return (ret == 0); } void |