summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ThreadPool.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2006-06-27 05:25:42 +0000
committerMichi Henning <michi@zeroc.com>2006-06-27 05:25:42 +0000
commit7600f42f5673bfe6be27de112adde1ebc8a798da (patch)
treec06ff76534812fe96d51ce2bbfb66848b8b38517 /cpp/src/Ice/ThreadPool.cpp
parentBug 1126. (diff)
downloadice-7600f42f5673bfe6be27de112adde1ebc8a798da.tar.bz2
ice-7600f42f5673bfe6be27de112adde1ebc8a798da.tar.xz
ice-7600f42f5673bfe6be27de112adde1ebc8a798da.zip
But 710.
Diffstat (limited to 'cpp/src/Ice/ThreadPool.cpp')
-rw-r--r--cpp/src/Ice/ThreadPool.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp
index 0bb280f8037..bf2287b9516 100644
--- a/cpp/src/Ice/ThreadPool.cpp
+++ b/cpp/src/Ice/ThreadPool.cpp
@@ -67,6 +67,8 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
int size = _instance->initializationData().properties->getPropertyAsIntWithDefault(_prefix + ".Size", 1);
if(size < 1)
{
+ Warning out(_instance->initializationData().logger);
+ out << _prefix << ".Size < 0; Size adjusted to 1";
size = 1;
}
@@ -74,11 +76,36 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
_instance->initializationData().properties->getPropertyAsIntWithDefault(_prefix + ".SizeMax", size);
if(sizeMax < size)
{
+ Warning out(_instance->initializationData().logger);
+ out << _prefix << ".SizeMax < " << _prefix << ".Size; SizeMax adjusted to Size (" << size << ")";
sizeMax = size;
}
int sizeWarn = _instance->initializationData().properties->
getPropertyAsIntWithDefault(_prefix + ".SizeWarn", sizeMax * 80 / 100);
+ if(!_instance->initializationData().properties->getProperty(_prefix + ".SizeWarn").empty())
+ {
+ if(sizeWarn < size)
+ {
+ Warning out(_instance->initializationData().logger);
+ out << _prefix << ".SizeWarn < " << _prefix << ".Size; adjusted SizeWarn to Size (" << size << ")";
+ }
+ else if(sizeWarn > sizeMax)
+ {
+ Warning out(_instance->initializationData().logger);
+ out << _prefix << ".SizeWarn > " << _prefix << ".SizeMax; adjusted SizeWarn to SizeMax (" << sizeMax << ")";
+ }
+ }
+
+ //
+ // We do this deliberately outside the above test, because sizeMax * 80 / 100
+ // can evaluate to something < size, but we want to issue a warning only if
+ // SizeWarn was explicitly set.
+ //
+ if(sizeWarn < size)
+ {
+ sizeWarn = size;
+ }
const_cast<int&>(_size) = size;
const_cast<int&>(_sizeMax) = sizeMax;
@@ -87,6 +114,8 @@ IceInternal::ThreadPool::ThreadPool(const InstancePtr& instance, const string& p
int stackSize = _instance->initializationData().properties->getPropertyAsInt(_prefix + ".StackSize");
if(stackSize < 0)
{
+ Warning out(_instance->initializationData().logger);
+ out << _prefix << ".StackSize < 0; Size adjusted to OS default";
stackSize = 0;
}
const_cast<size_t&>(_stackSize) = static_cast<size_t>(stackSize);