diff options
-rw-r--r-- | cpp/src/Ice/Connection.cpp | 16 |
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 |