diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-04-25 14:33:55 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-04-25 14:33:55 +0000 |
commit | aeceeaac287cdba605b9eee12508d58882db5ff2 (patch) | |
tree | 5b40f2e2b82b52f6db21d544daae375a4fac1811 /cpp/src/Glacier2/Blobject.cpp | |
parent | minor fix (diff) | |
download | ice-aeceeaac287cdba605b9eee12508d58882db5ff2.tar.bz2 ice-aeceeaac287cdba605b9eee12508d58882db5ff2.tar.xz ice-aeceeaac287cdba605b9eee12508d58882db5ff2.zip |
Fix bug 909 again - removed more sync
Diffstat (limited to 'cpp/src/Glacier2/Blobject.cpp')
-rw-r--r-- | cpp/src/Glacier2/Blobject.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/cpp/src/Glacier2/Blobject.cpp b/cpp/src/Glacier2/Blobject.cpp index b4f1e44ae25..9fb116909da 100644 --- a/cpp/src/Glacier2/Blobject.cpp +++ b/cpp/src/Glacier2/Blobject.cpp @@ -55,7 +55,7 @@ Glacier2::Blobject::Blobject(const CommunicatorPtr& communicator, bool reverse) IceUtil::Time::milliSeconds(_properties->getPropertyAsInt(serverSleepTime)) : IceUtil::Time::milliSeconds(_properties->getPropertyAsInt(clientSleepTime)); - _requestQueue = new RequestQueue(sleepTime); + const_cast<RequestQueuePtr&>(_requestQueue) = new RequestQueue(sleepTime); Int threadStackSize = _properties->getPropertyAsInt("Ice.ThreadPerConnection.StackSize"); @@ -74,11 +74,7 @@ Glacier2::Blobject::Blobject(const CommunicatorPtr& communicator, bool reverse) out << "cannot create thread for request queue:\n" << ex; } - if(_requestQueue) - { - _requestQueue->destroy(); - _requestQueue = 0; - } + _requestQueue->destroy(); throw; } @@ -87,17 +83,12 @@ Glacier2::Blobject::Blobject(const CommunicatorPtr& communicator, bool reverse) Glacier2::Blobject::~Blobject() { - assert(!_requestQueue); } void Glacier2::Blobject::destroy() { - if(_requestQueue) - { - _requestQueue->destroy(); - _requestQueue = 0; - } + _requestQueue->destroy(); } void @@ -268,7 +259,16 @@ Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Array_Object_ice_invokePt // AMI. // - bool override = _requestQueue->addRequest(new Request(proxy, inParams, current, _forwardContext, amdCB)); + bool override; + try + { + override = _requestQueue->addRequest(new Request(proxy, inParams, current, _forwardContext, amdCB)); + } + catch(const ObjectNotExistException& ex) + { + amdCB->ice_exception(ex); + return; + } if(override && _overrideTraceLevel >= 1) { |