summaryrefslogtreecommitdiff
path: root/ruby/src
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/src')
-rw-r--r--ruby/src/IceRuby/ValueFactoryManager.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/ruby/src/IceRuby/ValueFactoryManager.cpp b/ruby/src/IceRuby/ValueFactoryManager.cpp
index e125328afdf..8e54983f37c 100644
--- a/ruby/src/IceRuby/ValueFactoryManager.cpp
+++ b/ruby/src/IceRuby/ValueFactoryManager.cpp
@@ -219,6 +219,13 @@ IceRuby::ValueFactoryManager::destroy()
{
Lock lock(*this);
+ if(_self == Qnil)
+ {
+ //
+ // Nothing to do if already destroyed (this can occur if communicator destroy is called multiple times)
+ //
+ return;
+ }
factories.swap(_factories);