diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-02-12 09:50:25 -0330 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-02-12 09:50:25 -0330 |
commit | d6a276ee2646f92231c3d8b77af8742fbd921bd2 (patch) | |
tree | 0826c3e43406de9e0377c43fb01edbbce51fa202 /cpp/src/IceGrid/NodeSessionManager.cpp | |
parent | Bug 3651 - slice2cpp --depend does not error on bad slice (diff) | |
parent | Ensure that no more fds error message is flushed before the abort (diff) | |
download | ice-d6a276ee2646f92231c3d8b77af8742fbd921bd2.tar.bz2 ice-d6a276ee2646f92231c3d8b77af8742fbd921bd2.tar.xz ice-d6a276ee2646f92231c3d8b77af8742fbd921bd2.zip |
Merge branch 'R3_3_branch' of ssh://cvs.zeroc.com/home/git/ice into R3_3_branch
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionManager.cpp')
-rw-r--r-- | cpp/src/IceGrid/NodeSessionManager.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/cpp/src/IceGrid/NodeSessionManager.cpp b/cpp/src/IceGrid/NodeSessionManager.cpp index 718a559f92f..878c0bb03d7 100644 --- a/cpp/src/IceGrid/NodeSessionManager.cpp +++ b/cpp/src/IceGrid/NodeSessionManager.cpp @@ -322,19 +322,29 @@ NodeSessionManager::destroy() NodeSessionMap sessions; { Lock sync(*this); + if(_destroyed) + { + return; + } _destroyed = true; _sessions.swap(sessions); notifyAll(); } - _thread->terminate(); + if(_thread) + { + _thread->terminate(); + } NodeSessionMap::const_iterator p; for(p = sessions.begin(); p != sessions.end(); ++p) { p->second->terminate(); } - _thread->getThreadControl().join(); + if(_thread) + { + _thread->getThreadControl().join(); + } for(p = sessions.begin(); p != sessions.end(); ++p) { p->second->getThreadControl().join(); |