diff options
Diffstat (limited to 'cpp/src/IceUtil')
-rw-r--r-- | cpp/src/IceUtil/Thread.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/Thread.cpp b/cpp/src/IceUtil/Thread.cpp index 70c4aa8b52c..6f306f345de 100644 --- a/cpp/src/IceUtil/Thread.cpp +++ b/cpp/src/IceUtil/Thread.cpp @@ -406,6 +406,16 @@ IceUtil::Thread::start(size_t stackSize) __decRef(); throw ThreadSyscallException(__FILE__, __LINE__, rc); } + if(stackSize < PTHREAD_STACK_MIN) + { + stackSize = PTHREAD_STACK_MIN; + } +#ifdef __APPLE__ + if(stackSize % 4096 > 0) + { + stackSize = stackSize / 4096 * 4096 + 4096; + } +#endif rc = pthread_attr_setstacksize(&attr, stackSize); if(rc != 0) { |