summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2002-05-02 04:02:51 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2002-05-02 04:02:51 +0000
commit8f69e97f4dd195efee5e4c9212e0baf9a5fcb581 (patch)
tree672d7976d7f76399a0de07b6ee7635257e1dee5c
parentb8afd83510a2f20f75128fc47b9dff9fb2ff786b (diff)
downloadATCD-8f69e97f4dd195efee5e4c9212e0baf9a5fcb581.tar.gz
ChangeLogTag:Wed May 1 21:01:43 2002 Ossama Othman <ossama@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a57
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h11
-rw-r--r--TAO/tao/Asynch_Queued_Message.cpp11
-rw-r--r--TAO/tao/Cleanup_Func_Registry.cpp10
-rw-r--r--TAO/tao/Endpoint.h5
-rw-r--r--TAO/tao/ORB_Core.cpp15
-rw-r--r--TAO/tao/Principal.h1
-rw-r--r--TAO/tao/Sequence.h8
-rw-r--r--TAO/tao/Sequence_T.h8
-rw-r--r--TAO/tao/Synch_Queued_Message.cpp10
-rw-r--r--TAO/tao/Thread_Lane_Resources.h3
-rw-r--r--TAO/tao/ValueBase.h1
-rw-r--r--TAO/tao/ValueFactory.h1
14 files changed, 114 insertions, 29 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index 8d4e552ddaf..60d208b5669 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,58 @@
+Wed May 1 21:01:43 2002 Ossama Othman <ossama@uci.edu>
+
+ * tao/ORB_Core.cpp (fini):
+
+ Do not call "this->thread_lane_resources_manager()" since it
+ attempts to create a thread lane resource manager if the cached
+ pointer is zero. Instead check if the cached pointer is zero,
+ and then finalize the manager if the pointer is non-zero. If
+ the ORB was not fully initialized then there is no point in
+ calling thread_lane_resources_manager(), have it attempt to
+ create a new manager, and then finalize that completely unused
+ manager. Furthermore, if the factory method for the manager
+ returns a zero pointer, a seg fault will occur since that method
+ returns a dereferenced pointer. This scenario is prone to occur
+ when the Service Configurator is unable to initialize a
+ service. This change fixes a seg fault.
+
+ * tao/Asynch_Queued_Message.cpp:
+ * tao/Cleanup_Func_Registry.cpp:
+ * tao/Sequence.h:
+ * tao/Synch_Queued_Message.cpp:
+
+ Include "ace/Log_Msg.h" to pull in the definition of the
+ ACE_ASSERT macro. Necessitated by inter-header dependency
+ reductions in ACE.
+
+ * tao/Endpoint.h:
+ * tao/Principal.h:
+ * tao/ValueBase.h:
+ * tao/ValueFactory.h:
+
+ Include "ace/Synch_T.h" to pull in the definition of the
+ ACE_SYNCH_MUTEX macro. Necessitated by inter-header dependency
+ reductions in ACE.
+
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h
+ (TAO_SSLIOP_Connection_Handler):
+
+ Don't export this class. It cause an internal compiler error
+ from MS Visual Studio .NET (MSVC++ 7) to occur. The export
+ wasn't really needed to begin with.
+
+ Removed useless forward declarations and typedefs.
+
+ No need to include "tao/IIOP_Connection_Handler.h" to pull in
+ TAO_IIOP_Properties class. A forward declaration is enough.
+
+ No need to include "tao/Wait_Strategy.h".
+
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
+
+ Include "tao/IIOP_Connection_Handler.h" and
+ "tao/Wait_Strategy.h" to pull in TAO_IIOP_Properties and
+ TAO_Wait_Strategy class declarations, respectively.
+
Wed May 01 22:56:44 2002 Balachandran Natarajan <bala@cs.wustl.edu>
* tao/TAO.dsp:
@@ -59,7 +114,7 @@ Wed May 1 18:49:10 UTC 2002 Craig Rodrigues <crodrigu@bbn.com>
* tests/Big_Oneways/server.cpp:
* tests/Big_Twoways/Session.h:
Fix use of _remove_ref() to avoid "pure virtual method called"
- errors.
+ errors.
Tue Apr 30 23:17:04 2002 Balachandran Natarajan <bala@cs.wustl.edu>
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
index b871c5c9f72..ae0732f75f8 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
@@ -10,9 +10,11 @@
#include "tao/CDR.h"
#include "tao/Server_Strategy_Factory.h"
#include "tao/IIOP_Endpoint.h"
+#include "tao/IIOP_Connection_Handler.h"
#include "tao/Transport_Cache_Manager.h"
#include "tao/Resume_Handle.h"
#include "tao/Thread_Lane_Resources.h"
+#include "tao/Wait_Strategy.h"
#if !defined (__ACE_INLINE__)
# include "SSLIOP_Connection_Handler.i"
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h
index b96ae000c76..07bfbc0a3fe 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h
@@ -26,19 +26,13 @@
#include "ace/Reactor.h"
#include "tao/corbafwd.h"
-#include "tao/Wait_Strategy.h"
#include "tao/Connection_Handler.h"
-#include "tao/IIOP_Connection_Handler.h"
#include "tao/IIOPC.h"
#include "SSLIOP_Transport.h"
#include "SSLIOP_Current.h"
-
-class TAO_SSLIOP_Connection_Handler_State;
-class TAO_SSLIOP_Connection_Handler;
-typedef TAO_SSLIOP_Connection_Handler TAO_SSLIOP_SVC_HANDLER;
-
+class TAO_IIOP_Properties;
/**
* @class TAO_SSLIOP_Connection_Handler
@@ -48,11 +42,10 @@ typedef TAO_SSLIOP_Connection_Handler TAO_SSLIOP_SVC_HANDLER;
* The Connection handler which is common for the Acceptor and
* the Connector
*/
-class TAO_SSLIOP_Export TAO_SSLIOP_Connection_Handler
+class TAO_SSLIOP_Connection_Handler
: public TAO_SSL_SVC_HANDLER,
public TAO_Connection_Handler
{
-
public:
TAO_SSLIOP_Connection_Handler (ACE_Thread_Manager* t = 0);
diff --git a/TAO/tao/Asynch_Queued_Message.cpp b/TAO/tao/Asynch_Queued_Message.cpp
index e33e3a97ccd..736a31208fd 100644
--- a/TAO/tao/Asynch_Queued_Message.cpp
+++ b/TAO/tao/Asynch_Queued_Message.cpp
@@ -1,9 +1,12 @@
-// -*- C++ -*-
-// $Id$
-
#include "Asynch_Queued_Message.h"
-ACE_RCSID(tao, Asynch_Queued_Message, "$Id$")
+#include "ace/Log_Msg.h"
+
+
+ACE_RCSID (tao,
+ Asynch_Queued_Message,
+ "$Id$")
+
TAO_Asynch_Queued_Message::
TAO_Asynch_Queued_Message (const ACE_Message_Block *contents)
diff --git a/TAO/tao/Cleanup_Func_Registry.cpp b/TAO/tao/Cleanup_Func_Registry.cpp
index d4bb023988e..50e06b17d94 100644
--- a/TAO/tao/Cleanup_Func_Registry.cpp
+++ b/TAO/tao/Cleanup_Func_Registry.cpp
@@ -1,14 +1,14 @@
-// -*- C++ -*-
-//
-// $Id$
-
#include "Cleanup_Func_Registry.h"
#if !defined (__ACE_INLINE__)
# include "Cleanup_Func_Registry.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID (tao, Cleanup_Func_Registry, "$Id$")
+#include "ace/Log_Msg.h"
+
+ACE_RCSID (tao,
+ Cleanup_Func_Registry,
+ "$Id$")
TAO_Cleanup_Func_Registry::TAO_Cleanup_Func_Registry (void)
: cleanup_funcs_ ()
diff --git a/TAO/tao/Endpoint.h b/TAO/tao/Endpoint.h
index 4e4adfa7a96..e0307b75330 100644
--- a/TAO/tao/Endpoint.h
+++ b/TAO/tao/Endpoint.h
@@ -1,4 +1,4 @@
-// This may look like C, but it's really -*- C++ -*-
+// -*- C++ -*-
//=============================================================================
/**
@@ -24,6 +24,9 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "ace/Synch_T.h"
+
+
/**
* @class TAO_Endpoint
*
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index c380d0ba644..50afe27d054 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -1082,7 +1082,7 @@ TAO_ORB_Core::fini (void)
{
// Shutdown the ORB and block until the shutdown is complete.
this->shutdown (1
- ACE_ENV_ARG_PARAMETER);
+ ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
}
ACE_CATCHANY
@@ -1126,7 +1126,18 @@ TAO_ORB_Core::fini (void)
}
// Finalize lane resources.
- this->thread_lane_resources_manager ().finalize ();
+ //
+ // @@ Do not call this->thread_lane_resources_manager().finalize().
+ // this->thread_lane_manager_resources() can seg fault if the
+ // factory method it invokes returns a zero pointer, which can
+ // easily occur if the ORB is partially initialized due to a Service
+ // Configurator initialization failure. Instead check if the
+ // cached pointer is non-zero and then finalize.
+ //
+ // @todo Fix potential seg fault in
+ // TAO_ORB_Core::thread_lane_resources_manager().
+ if (this->thread_lane_resources_manager_ != 0)
+ this->thread_lane_resources_manager_->finalize ();
(void) TAO_Internal::close_services ();
diff --git a/TAO/tao/Principal.h b/TAO/tao/Principal.h
index 9213e247775..0e318fd15b8 100644
--- a/TAO/tao/Principal.h
+++ b/TAO/tao/Principal.h
@@ -25,6 +25,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "OctetSeqC.h"
+#include "ace/Synch_T.h"
/**
* @class CORBA_Principal
diff --git a/TAO/tao/Sequence.h b/TAO/tao/Sequence.h
index 93b574f2a01..93a02a241d7 100644
--- a/TAO/tao/Sequence.h
+++ b/TAO/tao/Sequence.h
@@ -1,4 +1,4 @@
-/* -*- C++ -*- */
+// -*- C++ -*-
//=============================================================================
/**
@@ -6,13 +6,15 @@
*
* $Id$
*
- * @author Carlos O'Ryan and Aniruddha Gokhale
+ * @author Carlos O'Ryan
+ * @author Aniruddha Gokhale
*/
//=============================================================================
#ifndef TAO_SEQUENCE_H
#define TAO_SEQUENCE_H
+
#include "ace/pre.h"
#include "tao/corbafwd.h"
@@ -22,6 +24,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/Managed_Types.h"
+#include "ace/Log_Msg.h" /* For "ACE_ASSERT" */
class CORBA_Object;
class CORBA_Environment;
@@ -651,4 +654,5 @@ TAO_Export int operator!= (const TAO_Unbounded_Sequence<CORBA::Octet> &l,
#include "tao/Sequence_T.h"
#include "ace/post.h"
+
#endif /* TAO_SEQUENCE_H */
diff --git a/TAO/tao/Sequence_T.h b/TAO/tao/Sequence_T.h
index f8a67b74d11..4b930afd63e 100644
--- a/TAO/tao/Sequence_T.h
+++ b/TAO/tao/Sequence_T.h
@@ -1,4 +1,4 @@
-/* -*- C++ -*- */
+// -*- C++ -*-
//=============================================================================
/**
@@ -13,10 +13,15 @@
#ifndef TAO_SEQUENCE_T_H
#define TAO_SEQUENCE_T_H
+
#include "ace/pre.h"
#include "tao/Sequence.h"
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
/**
* @class TAO_Unbounded_Sequence
*
@@ -1385,4 +1390,5 @@ public:
#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
#include "ace/post.h"
+
#endif /* TAO_SEQUENCE_T_H */
diff --git a/TAO/tao/Synch_Queued_Message.cpp b/TAO/tao/Synch_Queued_Message.cpp
index 8381449928d..ce7bd413d8a 100644
--- a/TAO/tao/Synch_Queued_Message.cpp
+++ b/TAO/tao/Synch_Queued_Message.cpp
@@ -1,9 +1,11 @@
-// -*- C++ -*-
-// $Id$
-
#include "Synch_Queued_Message.h"
+#include "ace/Log_Msg.h"
+
+
+ACE_RCSID (tao,
+ Synch_Queued_Message,
+ "$Id$")
-ACE_RCSID(tao, Synch_Queued_Message, "$Id$")
TAO_Synch_Queued_Message::
TAO_Synch_Queued_Message (const ACE_Message_Block *contents)
diff --git a/TAO/tao/Thread_Lane_Resources.h b/TAO/tao/Thread_Lane_Resources.h
index bc038346759..53aea870e25 100644
--- a/TAO/tao/Thread_Lane_Resources.h
+++ b/TAO/tao/Thread_Lane_Resources.h
@@ -1,3 +1,5 @@
+// -*- C++ -*-
+
//=============================================================================
/**
* @file Thread_Lane_Resources.h
@@ -19,6 +21,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/corbafwd.h"
+#include "ace/Synch_T.h"
class TAO_ORB_Core;
class TAO_Acceptor_Registry;
diff --git a/TAO/tao/ValueBase.h b/TAO/tao/ValueBase.h
index 4944dac56ea..6c9f323cb88 100644
--- a/TAO/tao/ValueBase.h
+++ b/TAO/tao/ValueBase.h
@@ -25,6 +25,7 @@
#ifdef TAO_HAS_VALUETYPE
#include "ace/OS.h" /* for ptr_arith_t */
+#include "ace/Synch_T.h"
#include "tao/corbafwd.h"
/**
diff --git a/TAO/tao/ValueFactory.h b/TAO/tao/ValueFactory.h
index 62499a07911..014db27bfc0 100644
--- a/TAO/tao/ValueFactory.h
+++ b/TAO/tao/ValueFactory.h
@@ -23,6 +23,7 @@
#ifdef TAO_HAS_VALUETYPE
+#include "ace/Synch_T.h"
class TAO_Export CORBA_ValueFactoryBase
{