summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Instance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Instance.cpp')
-rw-r--r--cpp/src/Ice/Instance.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index a80d74dd3f7..8e45317871e 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -288,6 +288,13 @@ IceInternal::Instance::threadPerConnection() const
return _threadPerConnection;
}
+size_t
+IceInternal::Instance::threadPerConnectionStackSize() const
+{
+ // No mutex lock, immutable.
+ return _threadPerConnectionStackSize;
+}
+
EndpointFactoryManagerPtr
IceInternal::Instance::endpointFactoryManager() const
{
@@ -368,7 +375,8 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
_properties(properties),
_messageSizeMax(0),
_connectionIdleTime(0),
- _threadPerConnection(false)
+ _threadPerConnection(false),
+ _threadPerConnectionStackSize(0)
{
try
@@ -542,6 +550,15 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope
const_cast<bool&>(_threadPerConnection) = _properties->getPropertyAsInt("Ice.ThreadPerConnection") > 0;
+ {
+ Int stackSize = _properties->getPropertyAsInt("Ice.ThreadPerConnection.StackSize");
+ if(stackSize < 0)
+ {
+ stackSize = 0;
+ }
+ const_cast<size_t&>(_threadPerConnectionStackSize) = static_cast<size_t>(stackSize);
+ }
+
_routerManager = new RouterManager;
_locatorManager = new LocatorManager;