summaryrefslogtreecommitdiff
path: root/ace/CORBA_Handler.cpp
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1996-11-04 21:36:10 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1996-11-04 21:36:10 +0000
commitd2d1bff478dd70e128aaa5b0522d2e05c19d740d (patch)
treea32489842d9f8cec42fbded14bddc638eaa8bf4d /ace/CORBA_Handler.cpp
parent505aef66e1b6b12b47b1c88df0ae61aaf2fe6c21 (diff)
downloadATCD-d2d1bff478dd70e128aaa5b0522d2e05c19d740d.tar.gz
Foo
Diffstat (limited to 'ace/CORBA_Handler.cpp')
-rw-r--r--ace/CORBA_Handler.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/ace/CORBA_Handler.cpp b/ace/CORBA_Handler.cpp
index bd0fde609c4..2c91d534caa 100644
--- a/ace/CORBA_Handler.cpp
+++ b/ace/CORBA_Handler.cpp
@@ -442,6 +442,19 @@ ACE_MT_CORBA_Handler::process_events (void *)
{
ACE_TRACE ("ACE_MT_CORBA_Handler::process_events");
+ // Special knowlege, we "know" that we are dealing with a singleton
+ // and that we are invoked in a context where the mutex controlling
+ // instance creation is held, so by the time we get the mutex
+ // the instance must exist.
+ if (ACE_MT_CORBA_Handler::instance_ == 0)
+ {
+ ACE_GUARD_RETURN (ACE_Thread_Mutex,
+ ace_mon,
+ ace_mt_corba_handler_lock_,
+ 0);
+ ACE_ASSERT (ACE_MT_CORBA_Handler::instance_ != 0);
+ }
+
ACE_Thread_Control t (ACE_MT_CORBA_Handler::instance_->thr_mgr ());
// This thread only processes events.