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.cpp10
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)
{