diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/IceGrid/LocatorI.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/cpp/src/IceGrid/LocatorI.cpp b/cpp/src/IceGrid/LocatorI.cpp index bf910ba31d1..554a170c22d 100644 --- a/cpp/src/IceGrid/LocatorI.cpp +++ b/cpp/src/IceGrid/LocatorI.cpp @@ -588,13 +588,15 @@ LocatorI::activate(const LocatorAdapterInfo& adapter, const RequestPtr& request) // we just add this one to the queue. If not, we add it to the queue and initiate // a call on the adapter to get its direct proxy. // - PendingRequestsMap::iterator p; - p = _pendingRequests.insert(make_pair(adapter.id, PendingRequests())).first; - p->second.insert(request); - if(p->second.size() != 1) + PendingRequestsMap::iterator p = _pendingRequests.find(adapter.id); + if(p != _pendingRequests.end()) { + p->second.insert(request); return; } + + p = _pendingRequests.insert(make_pair(adapter.id, PendingRequests())).first; + p->second.insert(request); } AMI_Adapter_activatePtr amiCB = new AMI_Adapter_activateI(this, adapter.id); |