diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-05-02 04:02:51 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-05-02 04:02:51 +0000 |
commit | fb4d3c3d46890c054b5d9096a2ef1e44df998645 (patch) | |
tree | 672d7976d7f76399a0de07b6ee7635257e1dee5c /TAO | |
parent | b79b0c55b0710711319eb606951c424d747a5d1e (diff) | |
download | ATCD-fb4d3c3d46890c054b5d9096a2ef1e44df998645.tar.gz |
ChangeLogTag:Wed May 1 21:01:43 2002 Ossama Othman <ossama@uci.edu>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 57 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp | 2 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h | 11 | ||||
-rw-r--r-- | TAO/tao/Asynch_Queued_Message.cpp | 11 | ||||
-rw-r--r-- | TAO/tao/Cleanup_Func_Registry.cpp | 10 | ||||
-rw-r--r-- | TAO/tao/Endpoint.h | 5 | ||||
-rw-r--r-- | TAO/tao/ORB_Core.cpp | 15 | ||||
-rw-r--r-- | TAO/tao/Principal.h | 1 | ||||
-rw-r--r-- | TAO/tao/Sequence.h | 8 | ||||
-rw-r--r-- | TAO/tao/Sequence_T.h | 8 | ||||
-rw-r--r-- | TAO/tao/Synch_Queued_Message.cpp | 10 | ||||
-rw-r--r-- | TAO/tao/Thread_Lane_Resources.h | 3 | ||||
-rw-r--r-- | TAO/tao/ValueBase.h | 1 | ||||
-rw-r--r-- | TAO/tao/ValueFactory.h | 1 |
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 { |