summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/Connection.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/cpp/src/Ice/Connection.cpp b/cpp/src/Ice/Connection.cpp
index 4fa1d81b8e2..da2d6557269 100644
--- a/cpp/src/Ice/Connection.cpp
+++ b/cpp/src/Ice/Connection.cpp
@@ -920,12 +920,19 @@ IceInternal::Connection::read(BasicStream& stream)
}
//
- // Updating _acmAbsoluteTimeout is to expensive here, because we
+ // Updating _acmAbsoluteTimeout is too expensive here, because we
// would have to acquire a lock just for this purpose. Instead, we
// update _acmAbsoluteTimeout in message().
//
}
+// used for the COMPILERFIX below
+static void
+setAbsoluteTimeout(int timeout, IceUtil::Time& result)
+{
+ result = IceUtil::Time::now() + IceUtil::Time::seconds(timeout);
+}
+
void
IceInternal::Connection::message(BasicStream& stream, const ThreadPoolPtr& threadPool)
{
@@ -946,9 +953,14 @@ IceInternal::Connection::message(BasicStream& stream, const ThreadPoolPtr& threa
return;
}
+// if(_acmTimeout > 0)
+// {
+// _acmAbsoluteTimeout = IceUtil::Time::now() + IceUtil::Time::seconds(_acmTimeout);
+// }
+// COMPILERFIX without this change VC6 sp5 + processor pack generates code that crashed on exceptions
if(_acmTimeout > 0)
{
- _acmAbsoluteTimeout = IceUtil::Time::now() + IceUtil::Time::seconds(_acmTimeout);
+ setAbsoluteTimeout(_acmTimeout, _acmAbsoluteTimeout);
}
try