From aeceeaac287cdba605b9eee12508d58882db5ff2 Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Tue, 25 Apr 2006 14:33:55 +0000 Subject: Fix bug 909 again - removed more sync --- cpp/src/Glacier2/Blobject.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'cpp/src/Glacier2/Blobject.cpp') 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(_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) { -- cgit v1.2.3