diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-05-08 13:48:51 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-05-08 13:48:51 -0230 |
commit | cdc0f62f4fe737454bbb96031695415c4f9be406 (patch) | |
tree | ec007ba67d4f0e579becf7c7709137a619b5de8d /cpp/src/Ice/LocatorInfo.cpp | |
parent | Bug 3966 - deadlock in LocatorInfo (diff) | |
download | ice-cdc0f62f4fe737454bbb96031695415c4f9be406.tar.bz2 ice-cdc0f62f4fe737454bbb96031695415c4f9be406.tar.xz ice-cdc0f62f4fe737454bbb96031695415c4f9be406.zip |
Bug 3409 - add sequence checking to ruby/python
Diffstat (limited to 'cpp/src/Ice/LocatorInfo.cpp')
-rw-r--r-- | cpp/src/Ice/LocatorInfo.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp index 4cd06442f3b..7d866d3da2e 100644 --- a/cpp/src/Ice/LocatorInfo.cpp +++ b/cpp/src/Ice/LocatorInfo.cpp @@ -581,7 +581,18 @@ IceInternal::LocatorInfo::getLocatorRegistry() // // Do not make locator calls from within sync. // - LocatorRegistryPrx locatorRegistry = locator->getRegistry(); + LocatorRegistryPrx locatorRegistry; + try + { + locatorRegistry = locator->getRegistry(); + } + catch(const Ice::Exception&) + { + IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); + notifyAll(); + + throw; + } { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); |