diff options
Diffstat (limited to 'rb/src/IceRuby/Communicator.cpp')
-rw-r--r-- | rb/src/IceRuby/Communicator.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/rb/src/IceRuby/Communicator.cpp b/rb/src/IceRuby/Communicator.cpp index 9902f7a7b1a..21461c023a3 100644 --- a/rb/src/IceRuby/Communicator.cpp +++ b/rb/src/IceRuby/Communicator.cpp @@ -34,9 +34,16 @@ void IceRuby_Communicator_mark(Ice::CommunicatorPtr* p) { assert(p); - ObjectFactoryPtr pof = ObjectFactoryPtr::dynamicCast((*p)->findObjectFactory("")); - assert(pof); - pof->mark(); + try + { + ObjectFactoryPtr pof = ObjectFactoryPtr::dynamicCast((*p)->findObjectFactory("")); + assert(pof); + pof->mark(); + } + catch(const Ice::CommunicatorDestroyedException&) + { + // Ignore. This is expected. + } } extern "C" |