diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-06-14 18:13:49 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-06-14 18:13:49 +0000 |
commit | 59901f050591c04475d65acb1df0d8649861a11e (patch) | |
tree | 429110387dde74ee0b5ce0d303596b3a8dd8fee0 | |
parent | d68a49f366b819cf2e690e327a41b4a3f1a7ce78 (diff) | |
download | ATCD-59901f050591c04475d65acb1df0d8649861a11e.tar.gz |
ChangeLogTag:Fri Jun 14 13:58:56 2002 Carlos O'Ryan <coryan@atdesk.com>
32 files changed, 1042 insertions, 1342 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 208b5d2da21..c9c2e0b9f90 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,107 @@ +Fri Jun 14 13:58:56 2002 Carlos O'Ryan <coryan@atdesk.com> + + * The following ChangeLog entry describe my fixes for bug 1222: + + http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1222 + + The main changes to solve the problem were: + + * Re-factor the code to close connections, write a single function + that tells all the objects that need to know about connection + status (most of them are LF_Events) when a connection is + closed. + * Make sure that errors detected during write (in + TAO_Transport::send_message_shared, formerly + TAO_Transport::send_message_i) do result in closing the + connection (they were ignored in some cases), for *all* + protocols. + * Re-order some of the code in + XXX_Connection_Handler::handle_close() to ensure that it is + idempotent (i.e. the second call is a no-op). Also make sure + that the LF_Event of all Connection_Handlers is changed to + LFS_CONNECTION_CLOSED when the connection is closed, it was for + IIOP, but not for other protocols!! In fact, all the + Connection_Handler business is fishy and needs more + re-factoring. + + Tracking down the problem required me to make two other changes: + + * Normalize the debug messages related to Transport and Connection + handlers. It was impossible to figure out what was going on + with messages in different formats. + + * Make some of the method names more meaningful (at least to me). + transition_handler_state_i() tells me that the state is changed, + but what is really going on is that the event handler is being + invalidated thus invalidate_event_handler_i() [the _i() because + locks are assumed held] + And others of similar ilk. + + * tao/Transport.h: + * tao/Transport.cpp: + Here is where most of the changes did happen. Re-named several + methods, factory the code to send connection closure + notifications into send_connection_closed_notifications() and + call that method whenever the connection is closed. + + * tao/IIOP_Connection_Handler.cpp: + Make handle_close() idempotent, if called twice nothing happens + because the handle is set to ACE_INVALID_HANDLE. + Make sure that peer.close() and + state_changed(...LFS_CONNECTION_CLOSED) are called ASAP, there + is no sense in delaying that until the last request finishes, in + fact it is a bad idea because you leave OS resources held that + should not be. + Remove obsolete (ancient!) comments and add new comments + describing what is really going on. + + * tao/IIOP_Transport.h: + * tao/IIOP_Transport.cpp: + Renamed some methods to make their semantics more obvious. + + * tao/ORB_Core.cpp: + * tao/GIOP_Message_Base.cpp: + Re-format debug messages to make them more consistent, easier to + parse, grep and understand them that way. + + * tao/Transport_Cache_Manager.cpp: + Call close_connection_no_purge(), the method used to be called + close_connection_i() which I find confusing because _i() is + normally attached to locking. + + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp: + * orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: + * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: + * tao/Strategies/DIOP_Transport.h: + * tao/Strategies/DIOP_Transport.cpp: + * tao/Strategies/DIOP_Connection_Handler.cpp: + * tao/Strategies/SHMIOP_Transport.h: + * tao/Strategies/SHMIOP_Transport.cpp: + * tao/Strategies/SHMIOP_Connection_Handler.cpp: + * tao/Strategies/UIOP_Transport.h: + * tao/Strategies/UIOP_Transport.cpp: + * tao/Strategies/UIOP_Connection_Handler.cpp: + Same changes as for IIOP, well, in some cases I had to add + missing code. + + * tests/Nested_Upcall_Crash/Makefile: + * tests/Nested_Upcall_Crash/Client_Peer.cpp: + * tests/Nested_Upcall_Crash/Server_Peer.cpp: + * tests/Nested_Upcall_Crash/client.cpp: + * tests/Nested_Upcall_Crash/run_test.pl: + * tests/Nested_Upcall_Crash/scavenger.cpp: + * tests/Nested_Upcall_Crash/server.cpp: + Make the test less verbose, add regression test driver. + It does not crash anymore, so I'll probably have to add another + test to reproduce the problems in bug 1202. + + * tests/Param_Test/objref.cpp: + Make it safe to call with debugging turned on, even when some of + the strings returned are null pointers. + Fri Jun 14 09:11:11 2002 Chad Elliott <elliott_c@ociweb.com> * TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp: diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp index 6d726f09f88..6e2bfe10c7c 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Connection_Handler.cpp @@ -217,39 +217,35 @@ TAO_UIPMC_Connection_Handler::svc (void) int TAO_UIPMC_Connection_Handler::handle_close (ACE_HANDLE handle, - ACE_Reactor_Mask rm) + ACE_Reactor_Mask rm) { - // @@ Alex: we need to figure out if the transport decides to close - // us or something else. If it is something else (for example - // the cached connector trying to make room for other - // connections) then we should let the transport know, so it can - // in turn take appropiate action (such as sending exceptions to - // all waiting reply handlers). + // @@ TODO this too similar to IIOP_Connection_Handler::handle_close, + // in fact, even the comments were identical. IMHO needs + // re-factoring. + ACE_HANDLE my_handle = this->get_handle (); + if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("TAO (%P|%t) ") - ACE_TEXT ("UIPMC_Connection_Handler::handle_close ") - ACE_TEXT ("(%d, %d)\n"), - handle, - rm)); + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - UIPMC_Connection_Handler[%d]::handle_close, " + "(%d, %d)\n", + my_handle, handle, rm)); + } - long upcalls = - this->decr_pending_upcalls (); + if(my_handle == ACE_INVALID_HANDLE) + { + return 0; + } + this->peer().close (); - if (upcalls < 0) - return 0; + this->set_handle (ACE_INVALID_HANDLE); + this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - if (this->get_handle () != ACE_INVALID_HANDLE) - { - // Just close the socket irrespective of what the upcall count - // is. - this->peer().close (); + long upcalls = this->decr_pending_upcalls (); - // Set the handle to be INVALID_HANDLE - this->set_handle (ACE_INVALID_HANDLE); - } + if (upcalls < 0) + return 0; - // Try to clean up things if the upcall count has reached 0 if (upcalls == 0) this->decr_refcount (); diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp index 7fbafcc5c9c..339325d6fe7 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.cpp @@ -40,7 +40,7 @@ TAO_UIPMC_Transport::TAO_UIPMC_Transport (TAO_UIPMC_Connection_Handler *handler, TAO_GIOP_Message_Base (orb_core, ACE_MAX_DGRAM_SIZE)); - // Replace the default wait strategy with our own + // Replace the default wait strategy with our own // since we don't support waiting on anything. delete this->ws_; ACE_NEW (this->ws_, @@ -508,10 +508,10 @@ TAO_UIPMC_Transport::send_message (TAO_OutputCDR &stream, // versions seem to need it though. Leaving it costs little. // This guarantees to send all data (bytes) or return an error. - ssize_t n = this->send_message_i (stub, - is_synchronous, - stream.begin (), - max_wait_time); + ssize_t n = this->send_message_shared (stub, + is_synchronous, + stream.begin (), + max_wait_time); if (n == -1) { @@ -538,8 +538,10 @@ TAO_UIPMC_Transport::messaging_init (CORBA::Octet major, return 1; } -void -TAO_UIPMC_Transport::transition_handler_state_i (void) +ACE_Event_Handler * +TAO_UIPMC_Transport::invalidate_event_handler_i (void) { + ACE_Event_Handler * eh = this->connection_handler_; this->connection_handler_ = 0; + return eh; } diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h index 0f0816b1c62..12442e36fc9 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/UIPMC_Transport.h @@ -70,7 +70,8 @@ protected: */ //@{ - virtual ACE_Event_Handler *event_handler_i (void); + virtual ACE_Event_Handler * event_handler_i (void); + virtual ACE_Event_Handler * invalidate_event_handler_i (void); virtual TAO_Pluggable_Messaging *messaging_object (void); @@ -87,10 +88,6 @@ protected: virtual int register_handler_i (void); - /// Method to do whatever it needs to do when the connection - /// handler is being closed and destroyed. - virtual void transition_handler_state_i (void); - public: /// @@TODO: These methods IMHO should have more meaningful /// names. The names seem to indicate nothing. diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp index ae0732f75f8..860ec22a657 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp @@ -211,29 +211,33 @@ int TAO_SSLIOP_Connection_Handler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask rm) { + // @@ TODO this too similar to IIOP_Connection_Handler::handle_close, + // in fact, even the comments were identical. IMHO needs + // re-factoring. + ACE_HANDLE my_handle = this->get_handle (); + if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, - "TAO (%P|%t) SSLIOP_Connection_Handler::handle_close " - "(%d, %d)\n", - handle, - rm)); + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - SSLIOP_Connection_Handler[%d]::handle_close, " + "(%d, %d)\n", + my_handle, handle, rm)); + } + + if(my_handle == ACE_INVALID_HANDLE) + { + return 0; + } + this->peer().close (); + + this->set_handle (ACE_INVALID_HANDLE); + this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); long upcalls = this->decr_pending_upcalls (); if (upcalls < 0) return 0; - if (this->get_handle () != ACE_INVALID_HANDLE) - { - // Just close the socket irrespective of what the upcall count - // is. - this->peer().close (); - - // Set the handle to be INVALID_HANDLE - this->set_handle (ACE_INVALID_HANDLE); - } - - // Try to clean up things if the upcall count has reached 0 if (upcalls == 0) this->decr_refcount (); diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp index df0a9f6ae94..19c6bdc082a 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp @@ -5,10 +5,6 @@ #include "SSLIOP_Transport.h" #include "tao/debug.h" -ACE_RCSID (SSLIOP, - SSLIOP_Transport, - "$Id$") - #include "SSLIOP_Connection_Handler.h" #include "SSLIOP_Profile.h" #include "SSLIOP_Acceptor.h" @@ -23,6 +19,7 @@ ACE_RCSID (SSLIOP, #include "tao/GIOP_Message_Base.h" #include "tao/Acceptor_Registry.h" +ACE_RCSID (SSLIOP, SSLIOP_Transport, "$Id$") TAO_SSLIOP_Transport::TAO_SSLIOP_Transport ( TAO_SSLIOP_Connection_Handler *handler, @@ -197,10 +194,10 @@ TAO_SSLIOP_Transport::send_message (TAO_OutputCDR &stream, // versions seem to need it though. Leaving it costs little. // This guarantees to send all data (bytes) or return an error. - ssize_t n = this->send_message_i (stub, - twoway, - stream.begin (), - max_wait_time); + ssize_t n = this->send_message_shared (stub, + twoway, + stream.begin (), + max_wait_time); if (n == -1) { @@ -399,8 +396,10 @@ TAO_SSLIOP_Transport::get_listen_point ( return 1; } -void -TAO_SSLIOP_Transport::transition_handler_state_i (void) +ACE_Event_Handler * +TAO_IIOP_Transport::invalidate_event_handler_i (void) { + ACE_Event_Handler * eh = this->connection_handler_; this->connection_handler_ = 0; + return eh; } diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h index 2b92f3ff646..e791bcfd173 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h @@ -86,7 +86,8 @@ protected: */ //@{ - virtual ACE_Event_Handler *event_handler_i (void); + virtual ACE_Event_Handler * event_handler_i (void); + virtual ACE_Event_Handler * invalidate_event_handler_i (void); virtual TAO_Pluggable_Messaging *messaging_object (void); @@ -103,10 +104,6 @@ protected: virtual int register_handler_i (void); - /// Method to do whatever it needs to do when the connection - /// handler is being closed and destroyed. - virtual void transition_handler_state_i (void); - public: /// @@TODO: These methods IMHO should have more meaningful /// names. The names seem to indicate nothing. diff --git a/TAO/tao/GIOP_Message_Base.cpp b/TAO/tao/GIOP_Message_Base.cpp index 27f0fb17a8b..952b53cbc70 100644 --- a/TAO/tao/GIOP_Message_Base.cpp +++ b/TAO/tao/GIOP_Message_Base.cpp @@ -1447,15 +1447,16 @@ TAO_GIOP_Message_Base::dump_msg (const char *label, // Print. ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%P | %t): %s GIOP v%c.%c msg, ") - ACE_TEXT ("%d data bytes, %s endian, %s = %u\n"), - ACE_TEXT_CHAR_TO_TCHAR(label), + "TAO (%P|%t) - GIOP_Message_Base::dump_msg, " + "%s GIOP v%c.%c msg, %d data bytes, %s endian, " + "Type %s[%u]\n", + label, digits[ptr[TAO_GIOP_VERSION_MAJOR_OFFSET]], digits[ptr[TAO_GIOP_VERSION_MINOR_OFFSET]], len - TAO_GIOP_MESSAGE_HEADER_LEN , - (byte_order == TAO_ENCAP_BYTE_ORDER) ? ACE_LIB_TEXT("my") : ACE_LIB_TEXT("other"), - ACE_TEXT_CHAR_TO_TCHAR(message_name), - *id)); + (byte_order == TAO_ENCAP_BYTE_ORDER) ? ACE_LIB_TEXT("my") : ACE_LIB_TEXT("other"), + ACE_TEXT_CHAR_TO_TCHAR(message_name), + *id)); if (TAO_debug_level >= 10) ACE_HEX_DUMP ((LM_DEBUG, diff --git a/TAO/tao/IIOP_Connection_Handler.cpp b/TAO/tao/IIOP_Connection_Handler.cpp index fb8819e806f..fe4506dc6aa 100644 --- a/TAO/tao/IIOP_Connection_Handler.cpp +++ b/TAO/tao/IIOP_Connection_Handler.cpp @@ -194,38 +194,44 @@ int TAO_IIOP_Connection_Handler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask rm) { - // @@ Alex: we need to figure out if the transport decides to close - // us or something else. If it is something else (for example - // the cached connector trying to make room for other - // connections) then we should let the transport know, so it can - // in turn take appropiate action (such as sending exceptions to - // all waiting reply handlers). + ACE_HANDLE my_handle = this->get_handle (); + if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) ") - ACE_LIB_TEXT ("IIOP_Connection_Handler::handle_close ") - ACE_LIB_TEXT ("(%d, %d)\n"), - handle, - rm)); + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - IIOP_Connection_Handler[%d]::handle_close, " + "(%d, %d)\n", + my_handle, handle, rm)); + } + + if(my_handle == ACE_INVALID_HANDLE) + { + return 0; + } + + // Just close the socket irrespective of what the upcall count is, + // we need to cleanup OS resources ASAP. + this->peer().close (); + + // Set the handle to be INVALID_HANDLE + this->set_handle (ACE_INVALID_HANDLE); + this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); + + // @@ TODO All this code dealing with upcalls is fishy, upcalls are + // incremented/decremented in handle_input_i(), and only + // decremented here! Also: the reference count is decremented + // here, while it is incremented in a selected few other places, + // in a very confusing ways. long upcalls = this->decr_pending_upcalls (); + // @@ TODO This is just bogus, a reference count below zero + // indicates a bug, should be ACE_ASSERT'ed and crash the ORB + // during testing! // Just return incase the upcall count goes below 0. if (upcalls < 0) return 0; - if (this->get_handle () != ACE_INVALID_HANDLE) - { - // Just close the socket irrespective of what the upcall count - // is. - this->peer().close (); - - // Set the handle to be INVALID_HANDLE - this->set_handle (ACE_INVALID_HANDLE); - } - - this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - // If the upcall count is zero start the cleanup. if (upcalls == 0) this->decr_refcount (); diff --git a/TAO/tao/IIOP_Transport.cpp b/TAO/tao/IIOP_Transport.cpp index 815d41e49b8..292fd4074af 100644 --- a/TAO/tao/IIOP_Transport.cpp +++ b/TAO/tao/IIOP_Transport.cpp @@ -179,10 +179,10 @@ TAO_IIOP_Transport::send_message (TAO_OutputCDR &stream, return -1; // This guarantees to send all data (bytes) or return an error. - ssize_t n = this->send_message_i (stub, - twoway, - stream.begin (), - max_wait_time); + ssize_t n = this->send_message_shared (stub, + twoway, + stream.begin (), + max_wait_time); if (n == -1) { @@ -368,8 +368,10 @@ TAO_IIOP_Transport::get_listen_point ( return 1; } -void -TAO_IIOP_Transport::transition_handler_state_i (void) +ACE_Event_Handler * +TAO_IIOP_Transport::invalidate_event_handler_i (void) { + ACE_Event_Handler * eh = this->connection_handler_; this->connection_handler_ = 0; + return eh; } diff --git a/TAO/tao/IIOP_Transport.h b/TAO/tao/IIOP_Transport.h index 01ef1914569..55058acfafa 100644 --- a/TAO/tao/IIOP_Transport.h +++ b/TAO/tao/IIOP_Transport.h @@ -73,7 +73,8 @@ protected: */ //@{ - virtual ACE_Event_Handler *event_handler_i (void); + virtual ACE_Event_Handler * event_handler_i (void); + virtual ACE_Event_Handler * invalidate_event_handler_i (void); /// Access the underlying messaging object virtual TAO_Pluggable_Messaging *messaging_object (void); @@ -88,9 +89,6 @@ protected: virtual int register_handler_i (void); - /// Method to do whatever it needs to do when the connection - /// handler is being closed and destroyed. - virtual void transition_handler_state_i (void); public: /// @@TODO: These methods IMHO should have more meaningful diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index f20d4b30338..2fba92b61e6 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -1675,7 +1675,9 @@ TAO_ORB_Core::run (ACE_Time_Value *tv, { if (TAO_debug_level >= 3) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - start of run/perform_work\n"))); + "TAO (%P|%t) - ORB_Core::run, " + "start [%s]\n", + perform_work?"perform_work":"run")); // Fetch the Reactor ACE_Reactor *r = this->reactor (); @@ -1726,13 +1728,15 @@ TAO_ORB_Core::run (ACE_Time_Value *tv, if (TAO_debug_level >= 3) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - calling handle_events\n"))); + ACE_LIB_TEXT ("TAO (%P|%t) - ORB_Core::run, " + "calling handle_events()\n"))); result = r->handle_events (tv); if (TAO_debug_level >= 3) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - handle_events returns %d\n"), + ACE_LIB_TEXT ("TAO (%P|%t) - ORB_Core::run, " + "handle_events() returns %d\n"), result)); if (result == -1) @@ -1758,8 +1762,8 @@ TAO_ORB_Core::run (ACE_Time_Value *tv, if (TAO_debug_level >= 3) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - ") - ACE_LIB_TEXT ("end of run/perform_work %d\n"), + ACE_LIB_TEXT ("TAO (%P|%t) - ORB_Core::run, ") + ACE_LIB_TEXT ("ends with result = %d\n"), result)); return result; diff --git a/TAO/tao/Strategies/DIOP_Connection_Handler.cpp b/TAO/tao/Strategies/DIOP_Connection_Handler.cpp index f4ce2232dfa..7cc447081c7 100644 --- a/TAO/tao/Strategies/DIOP_Connection_Handler.cpp +++ b/TAO/tao/Strategies/DIOP_Connection_Handler.cpp @@ -206,37 +206,33 @@ int TAO_DIOP_Connection_Handler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask rm) { - // @@ Alex: we need to figure out if the transport decides to close - // us or something else. If it is something else (for example - // the cached connector trying to make room for other - // connections) then we should let the transport know, so it can - // in turn take appropiate action (such as sending exceptions to - // all waiting reply handlers). + // @@ TODO this too similar to IIOP_Connection_Handler::handle_close, + // in fact, even the comments were identical. IMHO needs + // re-factoring. + ACE_HANDLE my_handle = this->get_handle (); + if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("TAO (%P|%t) ") - ACE_TEXT ("DIOP_Connection_Handler::handle_close ") - ACE_TEXT ("(%d, %d)\n"), - handle, - rm)); + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - DIOP_Connection_Handler[%d]::handle_close, " + "(%d, %d)\n", + my_handle, handle, rm)); + } - long upcalls = - this->decr_pending_upcalls (); + if(my_handle == ACE_INVALID_HANDLE) + { + return 0; + } + this->peer().close (); - if (upcalls < 0) - return 0; + this->set_handle (ACE_INVALID_HANDLE); + this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - if (this->get_handle () != ACE_INVALID_HANDLE) - { - // Just close the socket irrespective of what the upcall count - // is. - this->peer().close (); + long upcalls = this->decr_pending_upcalls (); - // Set the handle to be INVALID_HANDLE - this->set_handle (ACE_INVALID_HANDLE); - } + if (upcalls < 0) + return 0; - // Try to clean up things if the upcall count has reached 0 if (upcalls == 0) this->decr_refcount (); diff --git a/TAO/tao/Strategies/DIOP_Transport.cpp b/TAO/tao/Strategies/DIOP_Transport.cpp index a84266951a8..5981811452d 100644 --- a/TAO/tao/Strategies/DIOP_Transport.cpp +++ b/TAO/tao/Strategies/DIOP_Transport.cpp @@ -273,10 +273,10 @@ TAO_DIOP_Transport::send_message (TAO_OutputCDR &stream, // versions seem to need it though. Leaving it costs little. // This guarantees to send all data (bytes) or return an error. - ssize_t n = this->send_message_i (stub, - twoway, - stream.begin (), - max_wait_time); + ssize_t n = this->send_message_shared (stub, + twoway, + stream.begin (), + max_wait_time); if (n == -1) { @@ -464,10 +464,12 @@ TAO_DIOP_Transport::get_listen_point ( } */ -void -TAO_DIOP_Transport::transition_handler_state_i (void) +ACE_Event_Handler * +TAO_DIOP_Transport::invalidate_event_handler_i (void) { + ACE_Event_Handler * eh = this->connection_handler_; this->connection_handler_ = 0; + return eh; } #endif /* TAO_HAS_DIOP && TAO_HAS_DIOP != 0 */ diff --git a/TAO/tao/Strategies/DIOP_Transport.h b/TAO/tao/Strategies/DIOP_Transport.h index e86ff7846a5..cfc6f8036d9 100644 --- a/TAO/tao/Strategies/DIOP_Transport.h +++ b/TAO/tao/Strategies/DIOP_Transport.h @@ -73,8 +73,8 @@ protected: */ //@{ - virtual ACE_Event_Handler *event_handler_i (void); - + virtual ACE_Event_Handler * event_handler_i (void); + virtual ACE_Event_Handler * invalidate_event_handler_i (void); virtual TAO_Pluggable_Messaging *messaging_object (void); /// Write the complete Message_Block chain to the connection. @@ -90,9 +90,6 @@ protected: virtual int register_handler_i (void); - /// Method to do whatever it needs to do when the connection - /// handler is being closed and destroyed. - virtual void transition_handler_state_i (void); ///@} public: /// @todo These methods IMHO should have more meaningful names. diff --git a/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp b/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp index db01a6131ec..28ff606b384 100644 --- a/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp +++ b/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp @@ -167,37 +167,33 @@ int TAO_SHMIOP_Connection_Handler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask rm) { - // @@ Alex: we need to figure out if the transport decides to close - // us or something else. If it is something else (for example - // the cached connector trying to make room for other - // connections) then we should let the transport know, so it can - // in turn take appropiate action (such as sending exceptions to - // all waiting reply handlers). + // @@ TODO this too similar to IIOP_Connection_Handler::handle_close, + // in fact, even the comments were identical. IMHO needs + // re-factoring. + ACE_HANDLE my_handle = this->get_handle (); + if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) ") - ACE_LIB_TEXT ("SHMIOP_Connection_Handler::handle_close ") - ACE_LIB_TEXT ("(%d, %d)\n"), - handle, - rm)); + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - SMHIOP_Connection_Handler[%d]::handle_close, " + "(%d, %d)\n", + my_handle, handle, rm)); + } - long upcalls = this->decr_pending_upcalls (); + if(my_handle == ACE_INVALID_HANDLE) + { + return 0; + } + this->peer().close (); - // Just return incase the upcall count goes below 0. - if (upcalls < 0) - return 0; + this->set_handle (ACE_INVALID_HANDLE); + this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - if (this->get_handle () != ACE_INVALID_HANDLE) - { - // Just close the socket irrespective of what the upcall count - // is. - this->peer().close (); + long upcalls = this->decr_pending_upcalls (); - // Set the handle to be INVALID_HANDLE - this->set_handle (ACE_INVALID_HANDLE); - } + if (upcalls < 0) + return 0; - // Try to clean up things if the upcall count has reached 0 if (upcalls == 0) this->decr_refcount (); diff --git a/TAO/tao/Strategies/SHMIOP_Transport.cpp b/TAO/tao/Strategies/SHMIOP_Transport.cpp index 64fbe74061f..c0d1c755723 100644 --- a/TAO/tao/Strategies/SHMIOP_Transport.cpp +++ b/TAO/tao/Strategies/SHMIOP_Transport.cpp @@ -247,10 +247,10 @@ TAO_SHMIOP_Transport::send_message (TAO_OutputCDR &stream, // versions seem to need it though. Leaving it costs little. // This guarantees to send all data (bytes) or return an error. - ssize_t n = this->send_message_i (stub, - twoway, - stream.begin (), - max_wait_time); + ssize_t n = this->send_message_shared (stub, + twoway, + stream.begin (), + max_wait_time); if (n == -1) { @@ -276,10 +276,12 @@ TAO_SHMIOP_Transport::messaging_init (CORBA::Octet major, return 1; } -void -TAO_SHMIOP_Transport::transition_handler_state_i (void) +ACE_Event_Handler * +TAO_SHMIOP_Transport::invalidate_event_handler_i (void) { - connection_handler_ = 0; + ACE_Event_Handler * eh = this->connection_handler_; + this->connection_handler_ = 0; + return eh; } #endif /* TAO_HAS_SHMIOP && TAO_HAS_SHMIOP != 0 */ diff --git a/TAO/tao/Strategies/SHMIOP_Transport.h b/TAO/tao/Strategies/SHMIOP_Transport.h index 3e922d82b33..2acd909addf 100644 --- a/TAO/tao/Strategies/SHMIOP_Transport.h +++ b/TAO/tao/Strategies/SHMIOP_Transport.h @@ -67,7 +67,8 @@ protected: * These are implementations of template methods declared by TAO_Transport. */ //@{ - virtual ACE_Event_Handler *event_handler_i (void); + virtual ACE_Event_Handler * event_handler_i (void); + virtual ACE_Event_Handler * invalidate_event_handler_i (void); virtual TAO_Pluggable_Messaging *messaging_object (void); @@ -88,9 +89,6 @@ protected: virtual int register_handler_i (void); - /// Method to do whatever it needs to do when the connection - /// handler is being closed and destroyed. - virtual void transition_handler_state_i (void); //@} public: diff --git a/TAO/tao/Strategies/UIOP_Connection_Handler.cpp b/TAO/tao/Strategies/UIOP_Connection_Handler.cpp index 28ec1b1317e..ac3d8280235 100644 --- a/TAO/tao/Strategies/UIOP_Connection_Handler.cpp +++ b/TAO/tao/Strategies/UIOP_Connection_Handler.cpp @@ -150,41 +150,36 @@ int TAO_UIOP_Connection_Handler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask rm) { - // @@ Alex: we need to figure out if the transport decides to close - // us or something else. If it is something else (for example - // the cached connector trying to make room for other - // connections) then we should let the transport know, so it can - // in turn take appropiate action (such as sending exceptions to - // all waiting reply handlers). + // @@ TODO this too similar to IIOP_Connection_Handler::handle_close, + // in fact, even the comments were identical. IMHO needs + // re-factoring. + ACE_HANDLE my_handle = this->get_handle (); + if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("TAO (%P|%t) ") - ACE_TEXT ("UIOP_Connection_Handler::handle_close ") - ACE_TEXT ("(%d, %d)\n"), - handle, - rm)); + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - UIOP_Connection_Handler[%d]::handle_close, " + "(%d, %d)\n", + my_handle, handle, rm)); + } + + if(my_handle == ACE_INVALID_HANDLE) + { + return 0; + } + this->peer().close (); + + this->set_handle (ACE_INVALID_HANDLE); long upcalls = this->decr_pending_upcalls (); + this->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - // Just return incase the upcall count goes below 0. if (upcalls < 0) return 0; - if (this->get_handle () != ACE_INVALID_HANDLE) - { - // Just close the socket irrespective of what the upcall count - // is. - this->peer().close (); - - // Set the handle to be INVALID_HANDLE - this->set_handle (ACE_INVALID_HANDLE); - } - - // Try to clean up things if the upcall count has reached 0 if (upcalls == 0) this->decr_refcount (); - return 0; } diff --git a/TAO/tao/Strategies/UIOP_Transport.cpp b/TAO/tao/Strategies/UIOP_Transport.cpp index f31de7af50f..c5ba9b88691 100644 --- a/TAO/tao/Strategies/UIOP_Transport.cpp +++ b/TAO/tao/Strategies/UIOP_Transport.cpp @@ -176,10 +176,10 @@ TAO_UIOP_Transport::send_message (TAO_OutputCDR &stream, // versions seem to need it though. Leaving it costs little. // This guarantees to send all data (bytes) or return an error. - ssize_t n = this->send_message_i (stub, - twoway, - stream.begin (), - max_wait_time); + ssize_t n = this->send_message_shared (stub, + twoway, + stream.begin (), + max_wait_time); if (n == -1) { @@ -205,10 +205,12 @@ TAO_UIOP_Transport::messaging_init (CORBA::Octet major, return 1; } -void -TAO_UIOP_Transport::transition_handler_state_i (void) +ACE_Event_Handler * +TAO_UIOP_Transport::invalidate_event_handler_i (void) { - connection_handler_ = 0; + ACE_Event_Handler * eh = this->connection_handler_; + this->connection_handler_ = 0; + return eh; } #endif /* TAO_HAS_UIOP */ diff --git a/TAO/tao/Strategies/UIOP_Transport.h b/TAO/tao/Strategies/UIOP_Transport.h index 15b6593bb6a..c988f202473 100644 --- a/TAO/tao/Strategies/UIOP_Transport.h +++ b/TAO/tao/Strategies/UIOP_Transport.h @@ -66,7 +66,8 @@ protected: */ //@{ - virtual ACE_Event_Handler *event_handler_i (void); + virtual ACE_Event_Handler * event_handler_i (void); + virtual ACE_Event_Handler * invalidate_event_handler_i (void); virtual TAO_Pluggable_Messaging *messaging_object (void); @@ -82,10 +83,6 @@ protected: virtual int register_handler_i (void); - /// Method to do whatever it needs to do when the connection - /// handler is being closed and destroyed. - virtual void transition_handler_state_i (void); - public: /// @todo These methods IMHO should have more meaningful names. /// The names seem to indicate nothing. diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index ea2de3ca725..13298f4575b 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -104,27 +104,21 @@ TAO_Transport::~TAO_Transport (void) delete this->handler_lock_; - TAO_Queued_Message *i = this->head_; - while (i != 0) + while (this->head_ != 0) { - // @@ This is a good point to insert a flag to indicate that a - // CloseConnection message was successfully received. - i->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - - TAO_Queued_Message *tmp = i; - i = i->next (); - - tmp->destroy (); + TAO_Queued_Message *i = this->head_; + this->head_ = i->next (); + i->destroy (); } - // Avoid making the call if we can. This may be redundant, unless - // someone called handle_close() on the connection handler from - // outside the TAO_Transport. - if (this->cache_map_entry_ != 0) - { - this->orb_core_->lane_resources ().transport_cache ().purge_entry ( + // Avoid making the call if we can. This may be redundant, unless + // someone called handle_close() on the connection handler from + // outside the TAO_Transport. + if (this->cache_map_entry_ != 0) + { + this->orb_core_->lane_resources ().transport_cache ().purge_entry ( this->cache_map_entry_); - } + } } int @@ -186,8 +180,8 @@ dump_iov (iovec *iov, int iovcnt, int id, ACE_Log_Msg::instance ()->acquire (); ACE_DEBUG ((LM_DEBUG, - "TAO (%P|%t) - Transport[%d]::%s" - " sending %d buffers\n", + "TAO (%P|%t) - Transport[%d]::%s, " + "sending %d buffers\n", id, location, iovcnt)); for (int i = 0; i != iovcnt && 0 < current_transfer; ++i) { @@ -198,8 +192,8 @@ dump_iov (iovec *iov, int iovcnt, int id, iov_len = current_transfer; ACE_DEBUG ((LM_DEBUG, - "TAO (%P|%t) - Transport[%d]::%s" - " buffer %d/%d has %d bytes\n", + "TAO (%P|%t) - Transport[%d]::%s, " + "buffer %d/%d has %d bytes\n", id, location, i, iovcnt, iov_len)); @@ -209,10 +203,10 @@ dump_iov (iovec *iov, int iovcnt, int id, { ACE_TCHAR header[1024]; ACE_OS::sprintf (header, - ACE_LIB_TEXT("TAO - Transport[%d]::%s (") - ACE_SIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT("/") - ACE_SIZE_T_FORMAT_SPECIFIER ACE_LIB_TEXT(")\n"), - id, ACE_TEXT_CHAR_TO_TCHAR(location), offset, iov_len); + "TAO - Transport[%d]::%s (" + ACE_SIZE_T_FORMAT_SPECIFIER "/" + ACE_SIZE_T_FORMAT_SPECIFIER ")\n", + id, location, offset, iov_len); len = iov_len - offset; if (len > 512) @@ -225,9 +219,9 @@ dump_iov (iovec *iov, int iovcnt, int id, current_transfer -= iov_len; } ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::%s") - ACE_LIB_TEXT(" end of data\n"), - id, ACE_TEXT_CHAR_TO_TCHAR(location))); + "TAO (%P|%t) - Transport[%d]::%s, " + "end of data\n", + id, location)); ACE_Log_Msg::instance ()->release (); } @@ -239,7 +233,7 @@ TAO_Transport::send_message_block_chain (const ACE_Message_Block *mb, { ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->handler_lock_, -1); - if (this->check_event_handler_i ("TAO_Transport::send_message_block_chain") == -1) + if (this->check_event_handler_i ("Transport::send_message_block_chain") == -1) return -1; return this->send_message_block_chain_i (mb, @@ -289,144 +283,27 @@ TAO_Transport::send_message_block_chain_i (const ACE_Message_Block *mb, } int -TAO_Transport::send_message_i (TAO_Stub *stub, - int is_synchronous, - const ACE_Message_Block *message_block, - ACE_Time_Value *max_wait_time) +TAO_Transport::send_message_shared (TAO_Stub *stub, + int is_synchronous, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) { - ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->handler_lock_, -1); - - if (this->check_event_handler_i ("TAO_Transport::send_message_i") == -1) - return -1; - - if (is_synchronous) - { - return this->send_synchronous_message_i (message_block, - max_wait_time); - } - - // Let's figure out if the message should be queued without trying - // to send first: - int try_sending_first = 1; - - int queue_empty = (this->head_ == 0); - - if (!queue_empty) - try_sending_first = 0; - else if (stub->sync_strategy ().must_queue (queue_empty)) - try_sending_first = 0; - - ssize_t n; - - TAO_Flushing_Strategy *flushing_strategy = - this->orb_core ()->flushing_strategy (); - - if (try_sending_first) - { - size_t byte_count = 0; - // ... in this case we must try to send the message first ... - - size_t total_length = message_block->total_length (); - if (TAO_debug_level > 6) - { - ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::send_message_i, ") - ACE_LIB_TEXT("trying to send the message (ml = %d)\n"), - this->id (), total_length)); - } - - // @@ I don't think we want to hold the mutex here, however if - // we release it we need to recheck the status of the transport - // after we return... once I understand the final form for this - // code I will re-visit this decision - n = this->send_message_block_chain_i (message_block, - byte_count, - max_wait_time); - if (n == -1) - { - // ... if this is just an EWOULDBLOCK we must schedule the - // message for later, if it is ETIME we still have to send - // the complete message, because cutting off the message at - // this point will destroy the synchronization with the - // server ... - if (errno != EWOULDBLOCK && errno != ETIME) - { - return -1; - } - } - - // ... let's figure out if the complete message was sent ... - if (total_length == byte_count) - { - // Done, just return. Notice that there are no allocations - // or copies up to this point (though some fancy calling - // back and forth). - // This is the common case for the critical path, it should - // be fast. - return 0; - } - - if (TAO_debug_level > 6) - { - ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::send_message_i, ") - ACE_LIB_TEXT("partial send %d / %d bytes\n"), - this->id (), byte_count, total_length)); - } - - // ... part of the data was sent, need to figure out what piece - // of the message block chain must be queued ... - while (message_block != 0 && message_block->length () == 0) - message_block = message_block->cont (); - - // ... at least some portion of the message block chain should - // remain ... - ACE_ASSERT (message_block != 0); - } - - // ... either the message must be queued or we need to queue it - // because it was not completely sent out ... - - if (TAO_debug_level > 6) - { - ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::send_message_i, ") - ACE_LIB_TEXT("message is queued\n"), - this->id ())); - } - - TAO_Queued_Message *queued_message = 0; - ACE_NEW_RETURN (queued_message, - TAO_Asynch_Queued_Message (message_block), - -1); - queued_message->push_back (this->head_, this->tail_); - - // ... if the queue is full we need to activate the output on the - // queue ... - int must_flush = 0; - int constraints_reached = - this->check_buffering_constraints_i (stub, - must_flush); - - // ... but we also want to activate it if the message was partially - // sent.... Plus, when we use the blocking flushing strategy the - // queue is flushed as a side-effect of 'schedule_output()' - - if (constraints_reached || try_sending_first) - { - (void) flushing_strategy->schedule_output (this); - } + int r; + { + ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->handler_lock_, -1); - if (must_flush) - { - typedef ACE_Reverse_Lock<ACE_Lock> TAO_REVERSE_LOCK; - TAO_REVERSE_LOCK reverse (*this->handler_lock_); - ACE_GUARD_RETURN (TAO_REVERSE_LOCK, ace_mon, reverse, -1); + if (this->check_event_handler_i ("Transport::send_message_shared") == -1) + return -1; - (void) flushing_strategy->flush_transport (this); - } + r = this->send_message_shared_i (stub, is_synchronous, + message_block, max_wait_time); + } + if (r == -1) + { + this->close_connection (); + } - return 0; + return r; } int @@ -517,8 +394,9 @@ TAO_Transport::send_synchronous_message_i (const ACE_Message_Block *mb, if (TAO_debug_level > 0) { ACE_ERROR ((LM_ERROR, - ACE_LIB_TEXT("TAO (%P|%t) TAO_Transport::send_synchronous_message_i, ") - ACE_LIB_TEXT("error while flushing message %p\n"), "")); + "TAO (%P|%t) - Transport[%d]::send_synchronous_message_i, " + "error while flushing message %p\n", + this->id (), "")); } return -1; @@ -552,22 +430,20 @@ TAO_Transport::tear_listen_point_list (TAO_InputCDR &) ACE_NOTSUP_RETURN (-1); } - void TAO_Transport::connection_handler_closing (void) { - { - ACE_MT (ACE_GUARD (ACE_Lock, - guard, - *this->handler_lock_)); + // The connection has closed, we must invalidate the handler to + // ensure that any attempt to use this transport results in an + // error. Basically all the other methods in the Transport + // cooperate via check_event_handler_i() - this->transition_handler_state_i (); - } - // Can't hold the lock while we release, b/c the release could - // invoke the destructor! + (void) this->invalidate_event_handler (); + this->send_connection_closed_notifications (); - // This should be the last thing we do here - TAO_Transport::release(this); + // Can't hold the lock while we release, b/c the release could + // invoke the destructor! This should be the last thing we do here + TAO_Transport::release (this); } TAO_Transport* @@ -594,14 +470,21 @@ TAO_Transport::release (TAO_Transport* transport) else if (count < 0) { ACE_ERROR ((LM_ERROR, - ACE_LIB_TEXT ("(%P|%t) TAO_Transport::release, ") - ACE_LIB_TEXT ("reference countis less than zero: %d\n"), - count)); + "TAO (%P|%t) - Transport[%d]::release, " + "reference count is less than zero: %d\n", + transport->id (), count)); ACE_OS::abort (); } } } +// @@ TODO Somebody needs to go throught this code and change those +// stupidly long calls sequences: +// +// this->orb_core_->lane_resources ().transport_cache (). +// +// to a single inline function!! + int TAO_Transport::recache_transport (TAO_Transport_Descriptor_Interface *desc) { @@ -637,36 +520,40 @@ TAO_Transport::make_idle (void) void TAO_Transport::close_connection (void) { - this->close_connection_i (); - - // Purge the entry - if (this->cache_map_entry_ != 0) - { - this->orb_core_->lane_resources ().transport_cache ().purge_entry ( - this->cache_map_entry_); - } + ACE_Event_Handler * eh = this->invalidate_event_handler (); + this->close_connection_shared (1, eh); } - void TAO_Transport::close_connection_i (void) { - ACE_Event_Handler *eh = 0; - { - ACE_MT (ACE_GUARD (ACE_Lock, guard, *this->handler_lock_)); + ACE_Event_Handler * eh = this->invalidate_event_handler_i (); + this->close_connection_shared (1, eh); +} - eh = this->event_handler_i (); +void +TAO_Transport::close_connection_no_purge (void) +{ + ACE_Event_Handler * eh = this->invalidate_event_handler (); + this->close_connection_shared (0, eh); +} - this->transition_handler_state_i (); +void +TAO_Transport::close_connection_shared (int disable_purge, + ACE_Event_Handler * eh) +{ + // Purge the entry + if (!disable_purge && this->cache_map_entry_ != 0) + { + this->orb_core_->lane_resources ().transport_cache ().purge_entry ( + this->cache_map_entry_); + } - if (eh == 0) + if (eh == 0) + { + // The connection was already closed return; - } - - // Close the underlying connection, it is enough to get an - // Event_Handler pointer to do this, so we can factor out the code - // in the base TAO_Transport class. - + } // We first try to remove the handler from the reactor. After that // we destroy the handler using handle_close (). The remove handler @@ -683,10 +570,7 @@ TAO_Transport::close_connection_i (void) (void) eh->handle_close (ACE_INVALID_HANDLE, ACE_Event_Handler::ALL_EVENTS_MASK); - for (TAO_Queued_Message *i = this->head_; i != 0; i = i->next ()) - { - i->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); - } + this->send_connection_closed_notifications (); } ssize_t @@ -699,7 +583,7 @@ TAO_Transport::send (iovec *iov, int iovcnt, *this->handler_lock_, -1)); - if (this->check_event_handler_i ("TAO_Transport::send") == -1) + if (this->check_event_handler_i ("Transport::send") == -1) return -1; // now call the template method @@ -716,7 +600,7 @@ TAO_Transport::recv (char *buffer, *this->handler_lock_, -1)); - if (this->check_event_handler_i ("TAO_Transport::recv") == -1) + if (this->check_event_handler_i ("Transport::recv") == -1) return -1; // now call the template method @@ -736,8 +620,9 @@ TAO_Transport::generate_locate_request ( { if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("(%P|%t) Error in marshalling the \n") - ACE_LIB_TEXT ("LocateRequest Header \n"))); + "TAO (%P|%t) - Transport[%d]::generate_locate_request, " + "error while marshalling the LocateRequest header\n", + this->id ())); return -1; } @@ -758,8 +643,9 @@ TAO_Transport::generate_request_header ( { if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("(%P|%t) Error in marshalling the \n") - ACE_LIB_TEXT ("LocateRequest Header \n"))); + "(%P|%t) - Transport[%d]::generate_request_header, " + "error while marshalling the Request header\n", + this->id())); return -1; } @@ -775,7 +661,7 @@ TAO_Transport::handle_input_i (TAO_Resume_Handle &rh, if (TAO_debug_level > 3) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::handle_input\n"), + "TAO (%P|%t) - Transport[%d]::handle_input\n", this->id ())); } @@ -788,10 +674,11 @@ TAO_Transport::handle_input_i (TAO_Resume_Handle &rh, { if (TAO_debug_level > 2) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) Transport::handle_input_i,") - ACE_LIB_TEXT("error while parsing the head of the queue \n"))); + "TAO (%P|%t) - Transport[%d]::handle_input_i, " + "error while parsing the head of the queue\n", + this->id())); - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); } return retval; } @@ -838,7 +725,9 @@ TAO_Transport::handle_input_i (TAO_Resume_Handle &rh, if (n <= 0) { if (n == -1) - this->tms_->connection_closed (); + { + this->send_connection_closed_notifications (); + } return n; } @@ -846,8 +735,9 @@ TAO_Transport::handle_input_i (TAO_Resume_Handle &rh, if (TAO_debug_level > 2) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) Read [%d] bytes from transport [%d]\n"), - n, this->id ())); + "TAO (%P|%t) - Transport[%d]::handle_input_i, " + "read %d bytes\n", + this->id (), n)); } // Set the write pointer in the stack buffer @@ -864,8 +754,9 @@ TAO_Transport::handle_input_i (TAO_Resume_Handle &rh, if (retval == -1 && TAO_debug_level > 0) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport::handle_input_i ") - ACE_LIB_TEXT("error while parsing and consolidating \n"))); + "TAO (%P|%t) - Transport[%d]::handle_input_i, " + "error while parsing and consolidating\n", + this->id ())); } return retval; } @@ -943,9 +834,11 @@ TAO_Transport::parse_incoming_messages (ACE_Message_Block &block) { if (TAO_debug_level > 2) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - error in incoming message \n"))); + "TAO (%P|%t) - Transport[%d]::parse_incoming_messages, " + "error in incoming message\n", + this->id ())); - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); return -1; } } @@ -984,7 +877,7 @@ TAO_Transport::consolidate_message (ACE_Message_Block &incoming, if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport[%d]::consolidate_message \n"), + "TAO (%P|%t) - Transport[%d]::consolidate_message\n", this->id ())); } @@ -1013,12 +906,12 @@ TAO_Transport::consolidate_message (ACE_Message_Block &incoming, if (TAO_debug_level > 6) { ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Read [%d] bytes on attempt \n", - n)); + "TAO (%P|%t) - Transport[%d]::consolidate_message, " + "read %d bytes on attempt\n", + this->id(), n)); } - if (n == 0 || - n == -1) + if (n == 0 || n == -1) { break; } @@ -1033,10 +926,11 @@ TAO_Transport::consolidate_message (ACE_Message_Block &incoming, if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Trasport::consolidate_message,") - ACE_LIB_TEXT("error while trying to consolidate \n"))); + "TAO (%P|%t) - Trasport[%d]::consolidate_message, " + "error while trying to consolidate\n", + this->id ())); } - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); return -1; } @@ -1056,8 +950,8 @@ TAO_Transport::consolidate_message (ACE_Message_Block &incoming, if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport[%d]::consolidate_message \n") - ACE_LIB_TEXT("queueing up the message \n"), + "TAO (%P|%t) - Transport[%d]::consolidate_message, " + "queueing up the message\n", this->id ())); } @@ -1154,7 +1048,7 @@ TAO_Transport::consolidate_message_queue (ACE_Message_Block &incoming, if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport[%d]::consolidate_message_queue \n"), + "TAO (%P|%t) - Transport[%d]::consolidate_message_queue\n", this->id ())); } @@ -1187,8 +1081,9 @@ TAO_Transport::consolidate_message_queue (ACE_Message_Block &incoming, if (TAO_debug_level) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Error while consolidating... \n"), - ACE_LIB_TEXT("TAO (%P|%t) - .. part of the read message \n"))); + "TAO (%P|%t) - Transport[%d]::consolidate_message_queue, " + "error while consolidating, part of the read message\n", + this->id ())); } return retval; } @@ -1277,7 +1172,7 @@ TAO_Transport::consolidate_extra_messages (ACE_Message_Block if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport[%d]::consolidate_extra_messages \n"), + "TAO (%P|%t) - Transport[%d]::consolidate_extra_messages\n", this->id ())); } @@ -1302,8 +1197,8 @@ TAO_Transport::consolidate_extra_messages (ACE_Message_Block if (TAO_debug_level > 6) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport[%d]::consolidate_extra_messages \n") - ACE_LIB_TEXT(".............. extracting extra messages \n"), + "TAO (%P|%t) - Transport[%d]::consolidate_extra_messages, " + "extracting extra messages\n", this->id ())); } @@ -1351,11 +1246,11 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, { if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - %p\n"), - ACE_LIB_TEXT ("Close Connection Message recd \n"))); + "TAO (%P|%t) - Transport[%d]::process_parsed_messages, " + "received CloseConnection message %p\n", + this->id(), "")); - // Close the TMS - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); // Return a "-1" so that the next stage can take care of // closing connection and the necessary memory management. @@ -1372,8 +1267,7 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, this, qd) == -1) { - // Close the TMS - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); // Return a "-1" so that the next stage can take care of // closing connection and the necessary memory management. @@ -1395,12 +1289,11 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, { if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - %p\n"), - ACE_LIB_TEXT ("IIOP_Transport::process_message, ") - ACE_LIB_TEXT ("process_reply_message ()"))); + "TAO (%P|%t) - Transport[%d]::process_parsed_messages, " + "error in process_reply_message %p\n", + this->id (), "")); - this->messaging_object ()->reset (); - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); return -1; } @@ -1412,23 +1305,25 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, // every reply on this connection. if (TAO_debug_level > 0) ACE_ERROR ((LM_ERROR, - ACE_LIB_TEXT ("TAO (%P|%t) : IIOP_Transport::") - ACE_LIB_TEXT ("process_message - ") - ACE_LIB_TEXT ("dispatch reply failed\n"))); + "TAO (%P|%t) - Transport[%d]::process_parsed_messages, " + "dispatch reply failed\n", + this->id ())); - this->messaging_object ()->reset (); - this->tms_->connection_closed (); + this->send_connection_closed_notifications (); return -1; } } else if (t == TAO_PLUGGABLE_MESSAGE_MESSAGERROR) { - // Ys, we print out all levels that we are closing the - // connection. - ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT("(%P|%t) Closing down the connection \n")), - -1); + if (TAO_debug_level) + { + ACE_ERROR_RETURN ((LM_ERROR, + "TAO (%P|%t) - Transport[%d]::process_parsed_messages, " + "received MessageError, closing connection\n", + this->id ()), + -1); + } } // If not, just return back.. @@ -1489,7 +1384,7 @@ TAO_Transport::process_queue_head (TAO_Resume_Handle &rh) if (TAO_debug_level > 3) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::process_queue_head \n"), + "TAO (%P|%t) - Transport[%d]::process_queue_head\n", this->id ())); } @@ -1503,8 +1398,8 @@ TAO_Transport::process_queue_head (TAO_Resume_Handle &rh) if (TAO_debug_level > 3) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO(%P|%t) - Transport[%d]::process_queue_head") - ACE_LIB_TEXT(" the size of the queue is [%d] \n"), + "TAO(%P|%t) - Transport[%d]::process_queue_head, " + "the size of the queue is [%d]\n", this->id (), this->incoming_message_queue_.queue_length())); } @@ -1527,7 +1422,8 @@ TAO_Transport::process_queue_head (TAO_Resume_Handle &rh) if (TAO_debug_level > 0) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::notify to Reactor\n"), + "TAO (%P|%t) - Transport[%d]::process_queue_header, " + "notify to Reactor\n", this->id ())); } @@ -1544,8 +1440,9 @@ TAO_Transport::process_queue_head (TAO_Resume_Handle &rh) // @@todo: need to think about what is the action that // we can take when we get here. ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) - Transport::process_queue_head ") - ACE_LIB_TEXT ("notify to the reactor failed.. \n"))); + "TAO (%P|%t) - Transport[%d]::process_queue_head, " + "notify to the reactor failed..\n", + this->id ())); } } } @@ -1623,7 +1520,7 @@ TAO_Transport::schedule_output_i (void) if (TAO_debug_level > 3) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::schedule_output\n"), + "TAO (%P|%t) - Transport[%d]::schedule_output\n", this->id ())); } @@ -1644,7 +1541,7 @@ TAO_Transport::cancel_output_i (void) if (TAO_debug_level > 3) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - Transport[%d]::cancel_output\n"), + "TAO (%P|%t) - Transport[%d]::cancel_output\n", this->id ())); } @@ -1658,8 +1555,9 @@ TAO_Transport::handle_timeout (const ACE_Time_Value & /* current_time */, if (TAO_debug_level > 6) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::handle_timeout, ") - ACE_LIB_TEXT("timer expired\n"))); + "TAO (%P|%t) - TAO_Transport[%d]::handle_timeout, " + "timer expired\n", + this->id ())); } /// This is the only legal ACT in the current configuration.... @@ -1704,7 +1602,7 @@ TAO_Transport::drain_queue (void) int TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[]) { - if (this->check_event_handler_i ("TAO_Transport::drain_queue_helper") == -1) + if (this->check_event_handler_i ("Transport::drain_queue_helper") == -1) return -1; size_t byte_count = 0; @@ -1730,8 +1628,9 @@ TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[]) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::drain_queue_helper, ") - ACE_LIB_TEXT("send() returns 0"))); + "TAO (%P|%t) - Transport[%d]::drain_queue_helper, " + "send() returns 0", + this->id ())); } return -1; } @@ -1740,9 +1639,9 @@ TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[]) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::drain_queue_helper, ") - ACE_LIB_TEXT("%p"), - ACE_LIB_TEXT("send()"))); + "TAO (%P|%t) - Transport[%d]::drain_queue_helper, " + "error during %p\n", + this->id (), "send_i()")); } if (errno == EWOULDBLOCK) return 0; @@ -1756,9 +1655,9 @@ TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[]) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::drain_queue_helper, ") - ACE_LIB_TEXT("byte_count = %d, head_is_empty = %d\n"), - byte_count, (this->head_ == 0))); + "TAO (%P|%t) - Transport[%d]::drain_queue_helper, " + "byte_count = %d, head_is_empty = %d\n", + this->id(), byte_count, (this->head_ == 0))); } return 1; } @@ -1790,9 +1689,9 @@ TAO_Transport::drain_queue_i (void) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::drain_queue_i, ") - ACE_LIB_TEXT("helper retval = %d\n"), - retval)); + "TAO (%P|%t) - Transport[%d]::drain_queue_i, " + "helper retval = %d\n", + this->id (), retval)); } if (retval != 1) return retval; @@ -1814,9 +1713,9 @@ TAO_Transport::drain_queue_i (void) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::drain_queue_i, ") - ACE_LIB_TEXT("helper retval = %d\n"), - retval)); + "TAO (%P|%t) - Transport[%d]::drain_queue_i, " + "helper retval = %d\n", + this->id (), retval)); } if (retval != 1) return retval; @@ -1853,9 +1752,9 @@ TAO_Transport::cleanup_queue (size_t byte_count) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::cleanup_queue, ") - ACE_LIB_TEXT("byte_count = %d\n"), - byte_count)); + "TAO (%P|%t) - Transport[%d]::cleanup_queue, " + "byte_count = %d\n", + this->id (), byte_count)); } // Update the state of the first message @@ -1864,9 +1763,9 @@ TAO_Transport::cleanup_queue (size_t byte_count) if (TAO_debug_level > 4) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("TAO (%P|%t) - TAO_Transport::cleanup_queue, ") - ACE_LIB_TEXT("after transfer, bc = %d, all_sent = %d, ml = %d\n"), - byte_count, i->all_data_sent (), + "TAO (%P|%t) - Transport[%d]::cleanup_queue, " + "after transfer, bc = %d, all_sent = %d, ml = %d\n", + this->id (), byte_count, i->all_data_sent (), i->message_length ())); } @@ -1939,13 +1838,174 @@ TAO_Transport::report_invalid_event_handler (const char *caller) if (TAO_debug_level > 0) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT("(%P|%t) transport %d (tag=%d) %s ") - ACE_LIB_TEXT("no longer associated with handler, ") - ACE_LIB_TEXT("returning -1 with errno = ENOENT\n"), - this->id (), - this->tag_, - ACE_TEXT_CHAR_TO_TCHAR(caller))); + "(%P|%t) - Transport[%d]::report_invalid_event_handler" + "(%s) no longer associated with handler [tag=%d]\n", + this->id (), caller, this->tag_)); + } +} + +ACE_Event_Handler * +TAO_Transport::invalidate_event_handler (void) +{ + ACE_MT (ACE_GUARD_RETURN (ACE_Lock, guard, *this->handler_lock_, 0)); + + return this->invalidate_event_handler_i (); +} + +void +TAO_Transport::send_connection_closed_notifications (void) +{ + while (this->head_ != 0) + { + TAO_Queued_Message *i = this->head_; + + // @@ This is a good point to insert a flag to indicate that a + // CloseConnection message was successfully received. + i->state_changed (TAO_LF_Event::LFS_CONNECTION_CLOSED); + + this->head_ = i->next (); + + i->destroy (); + } + + this->tms ()->connection_closed (); + this->messaging_object ()->reset (); +} + +int +TAO_Transport::send_message_shared_i (TAO_Stub *stub, + int is_synchronous, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) +{ + if (is_synchronous) + { + return this->send_synchronous_message_i (message_block, + max_wait_time); + } + + // Let's figure out if the message should be queued without trying + // to send first: + int try_sending_first = 1; + + int queue_empty = (this->head_ == 0); + + if (!queue_empty) + try_sending_first = 0; + else if (stub->sync_strategy ().must_queue (queue_empty)) + try_sending_first = 0; + + ssize_t n; + + TAO_Flushing_Strategy *flushing_strategy = + this->orb_core ()->flushing_strategy (); + + if (try_sending_first) + { + size_t byte_count = 0; + // ... in this case we must try to send the message first ... + + size_t total_length = message_block->total_length (); + if (TAO_debug_level > 6) + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - Transport[%d]::send_message_i, " + "trying to send the message (ml = %d)\n", + this->id (), total_length)); + } + + // @@ I don't think we want to hold the mutex here, however if + // we release it we need to recheck the status of the transport + // after we return... once I understand the final form for this + // code I will re-visit this decision + n = this->send_message_block_chain_i (message_block, + byte_count, + max_wait_time); + if (n == -1) + { + // ... if this is just an EWOULDBLOCK we must schedule the + // message for later, if it is ETIME we still have to send + // the complete message, because cutting off the message at + // this point will destroy the synchronization with the + // server ... + if (errno != EWOULDBLOCK && errno != ETIME) + { + return -1; + } + } + + // ... let's figure out if the complete message was sent ... + if (total_length == byte_count) + { + // Done, just return. Notice that there are no allocations + // or copies up to this point (though some fancy calling + // back and forth). + // This is the common case for the critical path, it should + // be fast. + return 0; + } + + if (TAO_debug_level > 6) + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - Transport[%d]::send_message_i, " + "partial send %d / %d bytes\n", + this->id (), byte_count, total_length)); + } + + // ... part of the data was sent, need to figure out what piece + // of the message block chain must be queued ... + while (message_block != 0 && message_block->length () == 0) + message_block = message_block->cont (); + + // ... at least some portion of the message block chain should + // remain ... + ACE_ASSERT (message_block != 0); } + + // ... either the message must be queued or we need to queue it + // because it was not completely sent out ... + + if (TAO_debug_level > 6) + { + ACE_DEBUG ((LM_DEBUG, + "TAO (%P|%t) - Transport[%d]::send_message_i, " + "message is queued\n", + this->id ())); + } + + TAO_Queued_Message *queued_message = 0; + ACE_NEW_RETURN (queued_message, + TAO_Asynch_Queued_Message (message_block), + -1); + queued_message->push_back (this->head_, this->tail_); + + // ... if the queue is full we need to activate the output on the + // queue ... + int must_flush = 0; + int constraints_reached = + this->check_buffering_constraints_i (stub, + must_flush); + + // ... but we also want to activate it if the message was partially + // sent.... Plus, when we use the blocking flushing strategy the + // queue is flushed as a side-effect of 'schedule_output()' + + if (constraints_reached || try_sending_first) + { + (void) flushing_strategy->schedule_output (this); + } + + if (must_flush) + { + typedef ACE_Reverse_Lock<ACE_Lock> TAO_REVERSE_LOCK; + TAO_REVERSE_LOCK reverse (*this->handler_lock_); + ACE_GUARD_RETURN (TAO_REVERSE_LOCK, ace_mon, reverse, -1); + + (void) flushing_strategy->flush_transport (this); + } + + return 0; } #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h index 614b83a7050..84f426424d0 100644 --- a/TAO/tao/Transport.h +++ b/TAO/tao/Transport.h @@ -429,7 +429,19 @@ protected: */ // @@ this is broken once we add the lock b/c it returns the thing // we're trying to lock down! (CJC) - virtual ACE_Event_Handler *event_handler_i (void) = 0; + virtual ACE_Event_Handler * event_handler_i (void) = 0; + + /// Called by <code>connection_handler_closing()</code> to signal + /// that the protocol-specific transport should dissociate itself + /// with the protocol-specific connection handler. + /** + * Typically, this just sets the pointer to the associated connection + * handler to zero, although it could also clear out any additional + * resources associated with the handler association. + * + * @return The old event handler + */ + virtual ACE_Event_Handler * invalidate_event_handler_i (void) = 0; /// Return the messaging object that is used to format the data that /// needs to be sent. @@ -482,14 +494,6 @@ protected: size_t len, const ACE_Time_Value *timeout = 0) = 0; - /// This class needs priviledged access to - /// - close_connection_i() - friend class TAO_Transport_Cache_Manager; - - /// Call the corresponding connection handler's <close> - /// method. - virtual void close_connection_i (void); - public: /// This is a request for the transport object to write a @@ -592,17 +596,6 @@ protected: // @@ lockme virtual int register_handler_i (void) = 0; - /// Called by <code>connection_handler_closing()</code> to signal - /// that the protocol-specific transport should dissociate itself - /// with the protocol-specific connection handler. - /** - * Typically, this just sets the pointer to the associated connection - * handler to zero, although it could also clear out any additional - * resources associated with the handler association. - */ - virtual void transition_handler_state_i (void) = 0; - - /// Called by the handle_input_i (). This method is used to parse /// message read by the handle_input_i () call. It also decides /// whether the message needs consolidation before processing. @@ -682,9 +675,6 @@ public: /// Sent the contents of <message_block> /** - * @todo This method name sucks, but send_message() was already - * taken by other silly methods! - * * @param stub The object reference used for this operation, useful * to obtain the current policies. * @param is_synchronous If set this method will block until the @@ -695,13 +685,11 @@ public: * field. * @param max_wait_time The maximum time that the operation can * block, used in the implementation of timeouts. - * */ - /// the twoway flag or by the current policies in the stub. - int send_message_i (TAO_Stub *stub, - int is_synchronous, - const ACE_Message_Block *message_block, - ACE_Time_Value *max_wait_time); + int send_message_shared (TAO_Stub *stub, + int is_synchronous, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time); /// Send a message block chain, assuming the lock is held int send_message_block_chain_i (const ACE_Message_Block *message_block, @@ -817,6 +805,36 @@ private: /// notify () to the reactor to send a next thread along. int process_queue_head (TAO_Resume_Handle &rh); + /// Grab the mutex and then call invalidate_event_handler_i() + ACE_Event_Handler * invalidate_event_handler (void); + + /// Notify all the components inside a Transport when the underlying + /// connection is closed. + void send_connection_closed_notifications (void); + + /// Implement send_message_shared() assuming the handler_lock_ is + /// held. + int send_message_shared_i (TAO_Stub *stub, + int is_synchronous, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time); + + /// Implement close_connection() assuming the handler_lock_ is held. + void close_connection_i (void); + + /// This class needs priviledged access to: + /// close_connection_no_purge () + friend class TAO_Transport_Cache_Manager; + + /// Close the underlying connection, do not purge the entry from the + /// map (supposedly it was purged already, trust the caller, yuck!) + void close_connection_no_purge (void); + + /// Close the underlying connection, implements the code shared by + /// all the close_connection_* variants. + void close_connection_shared (int disable_purge, + ACE_Event_Handler * eh); + /// Prohibited ACE_UNIMPLEMENTED_FUNC (TAO_Transport (const TAO_Transport&)) ACE_UNIMPLEMENTED_FUNC (void operator= (const TAO_Transport&)) diff --git a/TAO/tao/Transport_Cache_Manager.cpp b/TAO/tao/Transport_Cache_Manager.cpp index 8f3cc10b5bc..23d8a522250 100644 --- a/TAO/tao/Transport_Cache_Manager.cpp +++ b/TAO/tao/Transport_Cache_Manager.cpp @@ -523,7 +523,7 @@ TAO_Transport_Cache_Manager::close_entries(DESCRIPTOR_SET& sorted_set, // This is a bit ugly, but we must do this to // avoid taking and giving locks inside this loop. transport->cache_map_entry (0); - transport->close_connection_i (); + transport->close_connection_no_purge (); this->purge_entry_i (entry); // Count this as a successful purged entry diff --git a/TAO/tests/Nested_Upcall_Crash/Client_Peer.cpp b/TAO/tests/Nested_Upcall_Crash/Client_Peer.cpp index 40bdc9e7f68..dda139ac3cf 100644 --- a/TAO/tests/Nested_Upcall_Crash/Client_Peer.cpp +++ b/TAO/tests/Nested_Upcall_Crash/Client_Peer.cpp @@ -32,7 +32,7 @@ Client_Peer::callme(Test::Peer_ptr callback, ACE_ENV_ARG_DECL) ACE_THROW_SPEC((CORBA::SystemException)) { - ACE_DEBUG ((LM_DEBUG, "Received call, depth = %d\n", max_depth)); + // ACE_DEBUG ((LM_DEBUG, "Received call, depth = %d\n", max_depth)); if (max_depth > 0) { Test::Peer_var me = @@ -72,6 +72,8 @@ int Crasher::handle_timeout (ACE_Time_Value const & , void const *) { - ACE_DEBUG ((LM_DEBUG, "Performing intentional crash %a\n")); + // ACE_DEBUG ((LM_DEBUG, "(%P|%t) Performing intentional crash + // %a\n")); + ACE_OS::abort(); return 0; } diff --git a/TAO/tests/Nested_Upcall_Crash/Makefile b/TAO/tests/Nested_Upcall_Crash/Makefile index 9fa2c6613b0..368b58fbc85 100644 --- a/TAO/tests/Nested_Upcall_Crash/Makefile +++ b/TAO/tests/Nested_Upcall_Crash/Makefile @@ -67,54 +67,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -131,26 +115,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -158,101 +136,64 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i \ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ - $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ $(ACE_ROOT)/ace/Atomic_Op.h \ - $(ACE_ROOT)/ace/Atomic_Op.i \ $(ACE_ROOT)/ace/Atomic_Op.cpp \ - $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ - $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ - TestS_T.h TestS_T.i TestS_T.cpp TestS.i \ + TestS_T.h TestS_T.cpp TestS_T.i \ $(TAO_ROOT)/tao/Messaging/Messaging.h \ $(TAO_ROOT)/tao/Messaging/messaging_export.h \ $(TAO_ROOT)/tao/Messaging/MessagingC.h \ @@ -260,97 +201,72 @@ realclean: clean $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ $(TAO_ROOT)/tao/TAO_Singleton.h \ - $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Singleton.cpp \ $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ - $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ - $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ - $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/PollableC.h \ - $(TAO_ROOT)/tao/PollableC.i \ - $(TAO_ROOT)/tao/Messaging/MessagingC.i \ $(TAO_ROOT)/tao/Messaging/TAO_ExtC.h \ - $(TAO_ROOT)/tao/Messaging/TAO_ExtC.i \ $(TAO_ROOT)/tao/TAOC.h \ - $(TAO_ROOT)/tao/TAOC.i \ $(TAO_ROOT)/tao/ORB_Core.h \ $(TAO_ROOT)/tao/Policy_Manager.h \ $(TAO_ROOT)/tao/Policy_Set.h \ - $(TAO_ROOT)/tao/Policy_Set.i \ $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/Policy_Manager.i \ $(TAO_ROOT)/tao/Resource_Factory.h \ $(ACE_ROOT)/ace/Service_Object.h \ $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ $(TAO_ROOT)/tao/Adapter.h \ - $(TAO_ROOT)/tao/Adapter.i \ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Map_Manager.cpp \ $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ $(ACE_ROOT)/ace/Reactor.h \ $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ $(ACE_ROOT)/ace/Timer_Queue.h \ $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Test_and_Set.i \ $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Map_Manager.i \ $(TAO_ROOT)/tao/Parser_Registry.h \ - $(TAO_ROOT)/tao/Parser_Registry.i \ $(TAO_ROOT)/tao/Service_Callbacks.h \ - $(TAO_ROOT)/tao/Service_Callbacks.i \ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ - $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ $(ACE_ROOT)/ace/Array_Base.cpp \ - $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(ACE_ROOT)/ace/Array_Base.inl \ $(TAO_ROOT)/tao/Object_Ref_Table.h \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(TAO_ROOT)/tao/Interceptor_List.h \ - $(TAO_ROOT)/tao/Interceptor_List.inl \ $(TAO_ROOT)/tao/PICurrent.h \ - $(TAO_ROOT)/tao/PICurrent.inl \ - $(TAO_ROOT)/tao/Protocols_Hooks.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ $(ACE_ROOT)/ace/Thread_Manager.h \ $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Get_Opt.h .obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp Server_Peer.h TestS.h TestC.h \ $(TAO_ROOT)/tao/corba.h \ @@ -362,54 +278,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -426,26 +326,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -453,101 +347,64 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i \ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ - $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ $(ACE_ROOT)/ace/Atomic_Op.h \ - $(ACE_ROOT)/ace/Atomic_Op.i \ $(ACE_ROOT)/ace/Atomic_Op.cpp \ - $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ - $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ - TestS_T.h TestS_T.i TestS_T.cpp TestS.i \ + TestS_T.h TestS_T.cpp TestS_T.i \ $(TAO_ROOT)/tao/Messaging/Messaging.h \ $(TAO_ROOT)/tao/Messaging/messaging_export.h \ $(TAO_ROOT)/tao/Messaging/MessagingC.h \ @@ -555,97 +412,72 @@ realclean: clean $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ $(TAO_ROOT)/tao/TAO_Singleton.h \ - $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Singleton.cpp \ $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ - $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ - $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ - $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/PollableC.h \ - $(TAO_ROOT)/tao/PollableC.i \ - $(TAO_ROOT)/tao/Messaging/MessagingC.i \ $(TAO_ROOT)/tao/Messaging/TAO_ExtC.h \ - $(TAO_ROOT)/tao/Messaging/TAO_ExtC.i \ $(TAO_ROOT)/tao/TAOC.h \ - $(TAO_ROOT)/tao/TAOC.i \ $(TAO_ROOT)/tao/ORB_Core.h \ $(TAO_ROOT)/tao/Policy_Manager.h \ $(TAO_ROOT)/tao/Policy_Set.h \ - $(TAO_ROOT)/tao/Policy_Set.i \ $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/Policy_Manager.i \ $(TAO_ROOT)/tao/Resource_Factory.h \ $(ACE_ROOT)/ace/Service_Object.h \ $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ $(TAO_ROOT)/tao/Adapter.h \ - $(TAO_ROOT)/tao/Adapter.i \ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Map_Manager.cpp \ $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ $(ACE_ROOT)/ace/Reactor.h \ $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ $(ACE_ROOT)/ace/Timer_Queue.h \ $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Test_and_Set.i \ $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Map_Manager.i \ $(TAO_ROOT)/tao/Parser_Registry.h \ - $(TAO_ROOT)/tao/Parser_Registry.i \ $(TAO_ROOT)/tao/Service_Callbacks.h \ - $(TAO_ROOT)/tao/Service_Callbacks.i \ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ - $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ $(ACE_ROOT)/ace/Array_Base.cpp \ - $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(ACE_ROOT)/ace/Array_Base.inl \ $(TAO_ROOT)/tao/Object_Ref_Table.h \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(TAO_ROOT)/tao/Interceptor_List.h \ - $(TAO_ROOT)/tao/Interceptor_List.inl \ $(TAO_ROOT)/tao/PICurrent.h \ - $(TAO_ROOT)/tao/PICurrent.inl \ - $(TAO_ROOT)/tao/Protocols_Hooks.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ $(ACE_ROOT)/ace/Thread_Manager.h \ $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Get_Opt.h .obj/scavenger.o .obj/scavenger.so .shobj/scavenger.o .shobj/scavenger.so: scavenger.cpp TestC.h \ $(TAO_ROOT)/tao/corba.h \ @@ -657,54 +489,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -721,26 +537,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -748,86 +558,52 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i \ $(TAO_ROOT)/tao/Messaging/Messaging.h \ $(TAO_ROOT)/tao/Messaging/messaging_export.h \ $(TAO_ROOT)/tao/Messaging/MessagingC.h \ @@ -835,97 +611,72 @@ realclean: clean $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ $(TAO_ROOT)/tao/TAO_Singleton.h \ - $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Singleton.cpp \ $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ - $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ - $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ - $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/PollableC.h \ - $(TAO_ROOT)/tao/PollableC.i \ - $(TAO_ROOT)/tao/Messaging/MessagingC.i \ $(TAO_ROOT)/tao/Messaging/TAO_ExtC.h \ - $(TAO_ROOT)/tao/Messaging/TAO_ExtC.i \ $(TAO_ROOT)/tao/TAOC.h \ - $(TAO_ROOT)/tao/TAOC.i \ $(TAO_ROOT)/tao/ORB_Core.h \ $(TAO_ROOT)/tao/Policy_Manager.h \ $(TAO_ROOT)/tao/Policy_Set.h \ - $(TAO_ROOT)/tao/Policy_Set.i \ $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/Policy_Manager.i \ $(TAO_ROOT)/tao/Resource_Factory.h \ $(ACE_ROOT)/ace/Service_Object.h \ $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ $(TAO_ROOT)/tao/Adapter.h \ - $(TAO_ROOT)/tao/Adapter.i \ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Map_Manager.cpp \ $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ $(ACE_ROOT)/ace/Reactor.h \ $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ $(ACE_ROOT)/ace/Timer_Queue.h \ $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Test_and_Set.i \ $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Map_Manager.i \ $(TAO_ROOT)/tao/Parser_Registry.h \ - $(TAO_ROOT)/tao/Parser_Registry.i \ $(TAO_ROOT)/tao/Service_Callbacks.h \ - $(TAO_ROOT)/tao/Service_Callbacks.i \ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ - $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ $(ACE_ROOT)/ace/Array_Base.cpp \ - $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(ACE_ROOT)/ace/Array_Base.inl \ $(TAO_ROOT)/tao/Object_Ref_Table.h \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(TAO_ROOT)/tao/Interceptor_List.h \ - $(TAO_ROOT)/tao/Interceptor_List.inl \ $(TAO_ROOT)/tao/PICurrent.h \ - $(TAO_ROOT)/tao/PICurrent.inl \ - $(TAO_ROOT)/tao/Protocols_Hooks.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ $(ACE_ROOT)/ace/Thread_Manager.h \ $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Get_Opt.h .obj/Client_Peer.o .obj/Client_Peer.so .shobj/Client_Peer.o .shobj/Client_Peer.so: Client_Peer.cpp Client_Peer.h TestS.h TestC.h \ $(TAO_ROOT)/tao/corba.h \ @@ -937,54 +688,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -1001,26 +736,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -1028,182 +757,127 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i \ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ - $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ $(ACE_ROOT)/ace/Atomic_Op.h \ - $(ACE_ROOT)/ace/Atomic_Op.i \ $(ACE_ROOT)/ace/Atomic_Op.cpp \ - $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ - $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ - TestS_T.h TestS_T.i TestS_T.cpp TestS.i \ + TestS_T.h TestS_T.cpp TestS_T.i \ $(TAO_ROOT)/tao/ORB_Core.h \ $(TAO_ROOT)/tao/Policy_Manager.h \ $(TAO_ROOT)/tao/Policy_Set.h \ - $(TAO_ROOT)/tao/Policy_Set.i \ $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/Policy_Manager.i \ $(TAO_ROOT)/tao/Resource_Factory.h \ $(ACE_ROOT)/ace/Service_Object.h \ $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ - $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ $(TAO_ROOT)/tao/TAO_Singleton.h \ - $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Singleton.cpp \ $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/Adapter.h \ - $(TAO_ROOT)/tao/Adapter.i \ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Map_Manager.cpp \ $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ $(ACE_ROOT)/ace/Reactor.h \ $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ $(ACE_ROOT)/ace/Timer_Queue.h \ $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Test_and_Set.i \ $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Map_Manager.i \ $(TAO_ROOT)/tao/Parser_Registry.h \ - $(TAO_ROOT)/tao/Parser_Registry.i \ $(TAO_ROOT)/tao/Service_Callbacks.h \ - $(TAO_ROOT)/tao/Service_Callbacks.i \ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ - $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ $(ACE_ROOT)/ace/Array_Base.cpp \ - $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(ACE_ROOT)/ace/Array_Base.inl \ $(TAO_ROOT)/tao/Object_Ref_Table.h \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(TAO_ROOT)/tao/Interceptor_List.h \ - $(TAO_ROOT)/tao/Interceptor_List.inl \ $(TAO_ROOT)/tao/PICurrent.h \ - $(TAO_ROOT)/tao/PICurrent.inl \ - $(TAO_ROOT)/tao/Protocols_Hooks.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ $(ACE_ROOT)/ace/Thread_Manager.h \ $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(TAO_ROOT)/tao/ORB_Core.i + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Framework_Component_T.inl .obj/Server_Peer.o .obj/Server_Peer.so .shobj/Server_Peer.o .shobj/Server_Peer.so: Server_Peer.cpp Server_Peer.h TestS.h TestC.h \ $(TAO_ROOT)/tao/corba.h \ @@ -1215,54 +889,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -1279,26 +937,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -1306,101 +958,65 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i \ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ - $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ $(ACE_ROOT)/ace/Atomic_Op.h \ - $(ACE_ROOT)/ace/Atomic_Op.i \ $(ACE_ROOT)/ace/Atomic_Op.cpp \ - $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ - $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ - TestS_T.h TestS_T.i TestS_T.cpp TestS.i + TestS_T.h TestS_T.cpp TestS_T.i \ + $(TAO_ROOT)/tao/debug.h .obj/TestC.o .obj/TestC.so .shobj/TestC.o .shobj/TestC.so: TestC.cpp TestC.h \ $(TAO_ROOT)/tao/corba.h \ @@ -1412,54 +1028,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -1476,26 +1076,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -1503,191 +1097,130 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Stub.h \ $(TAO_ROOT)/tao/MProfile.h \ - $(TAO_ROOT)/tao/MProfile.i \ $(TAO_ROOT)/tao/ORB_Core.h \ $(TAO_ROOT)/tao/Policy_Manager.h \ $(TAO_ROOT)/tao/Policy_Set.h \ - $(TAO_ROOT)/tao/Policy_Set.i \ $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/Policy_Manager.i \ $(TAO_ROOT)/tao/Resource_Factory.h \ $(ACE_ROOT)/ace/Service_Object.h \ $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ - $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ $(TAO_ROOT)/tao/TAO_Singleton.h \ - $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Singleton.cpp \ $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/Adapter.h \ - $(TAO_ROOT)/tao/Adapter.i \ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Map_Manager.cpp \ $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ $(ACE_ROOT)/ace/Reactor.h \ $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ $(ACE_ROOT)/ace/Timer_Queue.h \ $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Test_and_Set.i \ $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Map_Manager.i \ $(TAO_ROOT)/tao/Parser_Registry.h \ - $(TAO_ROOT)/tao/Parser_Registry.i \ $(TAO_ROOT)/tao/Service_Callbacks.h \ - $(TAO_ROOT)/tao/Service_Callbacks.i \ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ - $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ $(ACE_ROOT)/ace/Array_Base.cpp \ - $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ + $(ACE_ROOT)/ace/Array_Base.inl \ $(TAO_ROOT)/tao/Object_Ref_Table.h \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(TAO_ROOT)/tao/Interceptor_List.h \ - $(TAO_ROOT)/tao/Interceptor_List.inl \ $(TAO_ROOT)/tao/PICurrent.h \ - $(TAO_ROOT)/tao/PICurrent.inl \ - $(TAO_ROOT)/tao/Protocols_Hooks.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ $(ACE_ROOT)/ace/Thread_Manager.h \ $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(TAO_ROOT)/tao/Stub.i \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ $(TAO_ROOT)/tao/Invocation.h \ $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \ $(TAO_ROOT)/tao/Reply_Dispatcher.h \ - $(TAO_ROOT)/tao/Reply_Dispatcher.i \ $(TAO_ROOT)/tao/LF_Event.h \ - $(TAO_ROOT)/tao/LF_Event.inl \ $(TAO_ROOT)/tao/GIOP_Message_Version.h \ - $(TAO_ROOT)/tao/GIOP_Message_Version.inl \ $(TAO_ROOT)/tao/operation_details.h \ $(TAO_ROOT)/tao/Service_Context.h \ - $(TAO_ROOT)/tao/Service_Context.inl \ $(TAO_ROOT)/tao/target_specification.h \ - $(TAO_ROOT)/tao/target_specification.i \ - $(TAO_ROOT)/tao/operation_details.i \ - $(TAO_ROOT)/tao/Invocation.i \ $(TAO_ROOT)/tao/PortableInterceptor.h \ $(TAO_ROOT)/tao/RequestInfo_Util.h \ $(TAO_ROOT)/tao/ClientRequestInfo_i.h \ - $(TAO_ROOT)/tao/ClientRequestInfo_i.inl \ $(TAO_ROOT)/tao/ClientInterceptorAdapter.h \ - $(TAO_ROOT)/tao/ClientInterceptorAdapter.inl + TestC.i .obj/TestS.o .obj/TestS.so .shobj/TestS.o .shobj/TestS.so: TestS.cpp TestS.h TestC.h \ $(TAO_ROOT)/tao/corba.h \ @@ -1699,54 +1232,38 @@ realclean: clean $(ACE_ROOT)/ace/CDR_Base.h \ $(ACE_ROOT)/ace/Basic_Types.h \ $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Time_Value.inl \ $(ACE_ROOT)/ace/Default_Constants.h \ $(ACE_ROOT)/ace/Global_Macros.h \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ - $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/Message_Block_T.cpp \ - $(ACE_ROOT)/ace/CDR_Base.inl \ + $(ACE_ROOT)/ace/Message_Block_T.i \ $(ACE_ROOT)/ace/CORBA_macros.h \ $(TAO_ROOT)/tao/orbconf.h \ $(TAO_ROOT)/tao/varbase.h \ $(TAO_ROOT)/tao/TAO_Export.h \ - $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Thread.h \ $(ACE_ROOT)/ace/Thread_Adapter.h \ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Synch_T.i \ $(TAO_ROOT)/tao/Exception.h \ $(ACE_ROOT)/ace/SString.h \ $(ACE_ROOT)/ace/String_Base.h \ @@ -1763,26 +1280,20 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/String_Base_Const.h \ - $(ACE_ROOT)/ace/String_Base.i \ - $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/String_Base.cpp \ $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ $(ACE_ROOT)/ace/Malloc_T.h \ $(ACE_ROOT)/ace/Malloc_Allocator.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_Base.h \ $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Memory_Pool.h \ $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ @@ -1790,232 +1301,164 @@ realclean: clean $(ACE_ROOT)/ace/Unbounded_Set.h \ $(ACE_ROOT)/ace/Node.h \ $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Unbounded_Set.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Typecode.i \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/String_Base.i \ $(TAO_ROOT)/tao/Any.h \ $(TAO_ROOT)/tao/CDR.h \ $(ACE_ROOT)/ace/CDR_Stream.h \ - $(ACE_ROOT)/ace/CDR_Stream.i \ - $(TAO_ROOT)/tao/CDR.i \ $(TAO_ROOT)/tao/Environment.h \ - $(TAO_ROOT)/tao/Environment.i \ $(TAO_ROOT)/tao/Object.h \ $(TAO_ROOT)/tao/Policy_ForwardC.h \ $(TAO_ROOT)/tao/Sequence.h \ $(TAO_ROOT)/tao/Managed_Types.h \ - $(TAO_ROOT)/tao/Managed_Types.i \ - $(TAO_ROOT)/tao/Sequence.i \ $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/Sequence_T.cpp \ - $(TAO_ROOT)/tao/Policy_ForwardC.i \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/Sequence_T.i \ $(TAO_ROOT)/tao/NVList.h \ $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(TAO_ROOT)/tao/NVList.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ $(TAO_ROOT)/tao/LocalObject.h \ - $(TAO_ROOT)/tao/LocalObject.i \ $(TAO_ROOT)/tao/Principal.h \ $(TAO_ROOT)/tao/OctetSeqC.h \ - $(TAO_ROOT)/tao/OctetSeqC.i \ - $(TAO_ROOT)/tao/Principal.i \ $(TAO_ROOT)/tao/ORB.h \ $(TAO_ROOT)/tao/Services.h \ - $(TAO_ROOT)/tao/Services.i \ $(TAO_ROOT)/tao/CORBA_String.h \ - $(TAO_ROOT)/tao/CORBA_String.inl \ $(TAO_ROOT)/tao/objectid.h \ $(TAO_ROOT)/tao/PolicyC.h \ $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/Encodable.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/ORB.i \ $(TAO_ROOT)/tao/BoundsC.h \ - $(TAO_ROOT)/tao/BoundsC.i \ $(TAO_ROOT)/tao/ValueBase.h \ - $(TAO_ROOT)/tao/ValueBase.i \ $(TAO_ROOT)/tao/ValueFactory.h \ - $(TAO_ROOT)/tao/ValueFactory.i \ $(TAO_ROOT)/tao/DomainC.h \ - $(TAO_ROOT)/tao/DomainC.i \ $(TAO_ROOT)/tao/WrongTransactionC.h \ - $(TAO_ROOT)/tao/WrongTransactionC.i \ $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ $(TAO_ROOT)/tao/ObjectIDList.h \ - $(TAO_ROOT)/tao/ObjectIDList.i \ $(TAO_ROOT)/tao/StringSeqC.h \ - $(TAO_ROOT)/tao/StringSeqC.i \ $(TAO_ROOT)/tao/PortableInterceptorC.h \ $(TAO_ROOT)/tao/DynamicC.h \ - $(TAO_ROOT)/tao/DynamicC.i \ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ - $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ - $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ $(TAO_ROOT)/tao/IOPC.h \ - $(TAO_ROOT)/tao/IOPC.i \ - $(TAO_ROOT)/tao/PortableInterceptorC.i \ - TestC.i \ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ - $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ $(ACE_ROOT)/ace/Atomic_Op.h \ - $(ACE_ROOT)/ace/Atomic_Op.i \ $(ACE_ROOT)/ace/Atomic_Op.cpp \ - $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ - $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ - TestS_T.h TestS_T.i TestS_T.cpp TestS.i \ + TestS_T.h TestS_T.cpp TestS_T.i \ $(TAO_ROOT)/tao/PortableServer/Object_Adapter.h \ $(TAO_ROOT)/tao/PortableServer/Key_Adapters.h \ $(ACE_ROOT)/ace/Map.h \ $(ACE_ROOT)/ace/Map_T.h \ $(ACE_ROOT)/ace/Pair.h \ $(ACE_ROOT)/ace/Pair_T.h \ - $(ACE_ROOT)/ace/Pair_T.i \ $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Pair_T.i \ $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Map_Manager.cpp \ $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Types.h \ $(ACE_ROOT)/ace/Service_Object.h \ $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/DLL.h \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ $(ACE_ROOT)/ace/Reactor.h \ $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ $(ACE_ROOT)/ace/Timer_Queue.h \ $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Test_and_Set.h \ - $(ACE_ROOT)/ace/Test_and_Set.i \ $(ACE_ROOT)/ace/Test_and_Set.cpp \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Map_Manager.i \ $(ACE_ROOT)/ace/Hash_Map_Manager.h \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Functor.h \ - $(ACE_ROOT)/ace/Functor.i \ $(ACE_ROOT)/ace/Functor_T.h \ - $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Functor_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Functor_T.i \ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(ACE_ROOT)/ace/Active_Map_Manager.h \ - $(ACE_ROOT)/ace/Active_Map_Manager.i \ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ - $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ - $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ $(ACE_ROOT)/ace/Map_T.cpp \ - $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \ + $(ACE_ROOT)/ace/Map_T.i \ $(TAO_ROOT)/tao/PortableServer/poa_macros.h \ $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.h \ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.i \ $(TAO_ROOT)/tao/Adapter.h \ - $(TAO_ROOT)/tao/Adapter.i \ $(TAO_ROOT)/tao/PortableServer/Default_Policy_Validator.h \ $(TAO_ROOT)/tao/Policy_Validator.h \ $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.h \ $(TAO_ROOT)/tao/PortableServer/POA_Policies.h \ - $(TAO_ROOT)/tao/PortableServer/POA_Policies.i \ $(TAO_ROOT)/tao/Policy_Set.h \ - $(TAO_ROOT)/tao/Policy_Set.i \ - $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.i \ - $(TAO_ROOT)/tao/PortableServer/Object_Adapter.i \ $(TAO_ROOT)/tao/PortableServer/Operation_Table.h \ $(TAO_ROOT)/tao/TAO_Singleton.h \ - $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Singleton.cpp \ $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Managed_Object.i \ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ - $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ $(TAO_ROOT)/tao/TAO_Server_Request.h \ $(TAO_ROOT)/tao/Tagged_Profile.h \ $(TAO_ROOT)/tao/GIOPC.h \ - $(TAO_ROOT)/tao/GIOPC.i \ - $(TAO_ROOT)/tao/Tagged_Profile.i \ $(TAO_ROOT)/tao/Service_Context.h \ - $(TAO_ROOT)/tao/Service_Context.inl \ $(TAO_ROOT)/tao/PICurrent.h \ $(ACE_ROOT)/ace/Array_Base.h \ - $(ACE_ROOT)/ace/Array_Base.inl \ $(ACE_ROOT)/ace/Array_Base.cpp \ - $(TAO_ROOT)/tao/PICurrent.inl \ - $(TAO_ROOT)/tao/TAO_Server_Request.i \ + $(ACE_ROOT)/ace/Array_Base.inl \ $(TAO_ROOT)/tao/ORB_Core.h \ $(TAO_ROOT)/tao/Policy_Manager.h \ $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/Policy_Manager.i \ $(TAO_ROOT)/tao/Resource_Factory.h \ $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \ $(TAO_ROOT)/tao/Parser_Registry.h \ - $(TAO_ROOT)/tao/Parser_Registry.i \ $(TAO_ROOT)/tao/Service_Callbacks.h \ - $(TAO_ROOT)/tao/Service_Callbacks.i \ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \ - $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \ - $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \ $(TAO_ROOT)/tao/Object_Ref_Table.h \ $(TAO_ROOT)/tao/Interceptor_List.h \ - $(TAO_ROOT)/tao/Interceptor_List.inl \ - $(TAO_ROOT)/tao/Protocols_Hooks.h \ $(ACE_ROOT)/ace/Thread_Manager.h \ $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ $(ACE_ROOT)/ace/Containers_T.h \ - $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ $(TAO_ROOT)/tao/Stub.h \ $(TAO_ROOT)/tao/MProfile.h \ - $(TAO_ROOT)/tao/MProfile.i \ - $(TAO_ROOT)/tao/Stub.i \ $(TAO_ROOT)/tao/IFR_Client_Adapter.h \ $(TAO_ROOT)/tao/PortableInterceptor.h \ $(TAO_ROOT)/tao/RequestInfo_Util.h \ $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \ - $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \ $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.h \ - $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.inl \ $(ACE_ROOT)/ace/Dynamic_Service.h \ $(ACE_ROOT)/ace/Dynamic_Service_Base.h \ - $(ACE_ROOT)/ace/Dynamic_Service.i \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(ACE_ROOT)/ace/Dynamic_Service.i TestS.i # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Nested_Upcall_Crash/Server_Peer.cpp b/TAO/tests/Nested_Upcall_Crash/Server_Peer.cpp index f383e829c9d..9d4efc2906b 100644 --- a/TAO/tests/Nested_Upcall_Crash/Server_Peer.cpp +++ b/TAO/tests/Nested_Upcall_Crash/Server_Peer.cpp @@ -7,6 +7,7 @@ * */ #include "Server_Peer.h" +#include "tao/debug.h" ACE_RCSID(Nested_Upcall_Crash, Server_Peer, "$Id$") @@ -28,6 +29,13 @@ Server_Peer::callme(Test::Peer_ptr callback, { int r = ACE_OS::rand_r(this->seed_) % 50; + if(TAO_debug_level) + { + ACE_DEBUG ((LM_DEBUG, + "(%P|%t) Server_Peer::callme[%d], r = %d\n", + max_depth, r)); + } + if(r == 0) { ACE_TRY diff --git a/TAO/tests/Nested_Upcall_Crash/client.cpp b/TAO/tests/Nested_Upcall_Crash/client.cpp index e0105df44d1..e3f6f4b17d7 100644 --- a/TAO/tests/Nested_Upcall_Crash/client.cpp +++ b/TAO/tests/Nested_Upcall_Crash/client.cpp @@ -121,7 +121,7 @@ main (int argc, char *argv[]) Timer timer(local_peer.in (), peer.in ()); - ACE_Time_Value interval(0, 100000); + ACE_Time_Value interval(0, 50 * 1000000 / HZ); ACE_Reactor * reactor = orb->orb_core()->reactor(); reactor->schedule_timer(&timer, 0, interval, interval); diff --git a/TAO/tests/Nested_Upcall_Crash/run_test.pl b/TAO/tests/Nested_Upcall_Crash/run_test.pl new file mode 100755 index 00000000000..dd8bc7a252c --- /dev/null +++ b/TAO/tests/Nested_Upcall_Crash/run_test.pl @@ -0,0 +1,55 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib '../../../bin'; +use PerlACE::Run_Test; + +$iorfile = PerlACE::LocalFile ("server.ior"); +unlink $iorfile; + +$SV = new PerlACE::Process ("server", "-o $iorfile"); +$CL1 = new PerlACE::Process ("client", "-k file://$iorfile"); +$CL2 = new PerlACE::Process ("client", "-k file://$iorfile"); +$CL3 = new PerlACE::Process ("client", "-k file://$iorfile"); + +$SV->Spawn (); + +if (PerlACE::waitforfile_timed ($iorfile, 5) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +local $start_time = time(); +local $max_running_time = 600; # 10 minutes +local $elapsed = time() - $start_time; + +while($elapsed < $max_running_time) { + # Start all clients in parallel + $client1 = $CL1->Spawn (); + $client2 = $CL2->Spawn (); + $client3 = $CL3->Spawn (); + + # ... wait for the clients to die unless they did not startup, + # ignore errors because they intentionally crash themselves! + $CL3->WaitKill(30) unless $client3 < 0; + $CL2->WaitKill(30) unless $client2 < 0; + $CL1->WaitKill(30) unless $client1 < 0; + + $elapsed = time() - $start_time; +} + +$server = $SV->TerminateWaitKill (10); + +if ($server != 0) { + print STDERR "ERROR: server returned $server\n"; + $status = 1; +} + +unlink $iorfile; + +exit $status; diff --git a/TAO/tests/Nested_Upcall_Crash/scavenger.cpp b/TAO/tests/Nested_Upcall_Crash/scavenger.cpp index e3d11a4ecac..b36fb77485c 100644 --- a/TAO/tests/Nested_Upcall_Crash/scavenger.cpp +++ b/TAO/tests/Nested_Upcall_Crash/scavenger.cpp @@ -81,7 +81,7 @@ main (int argc, char *argv[]) ACE_TRY_CHECK; } - ACE_DEBUG ((LM_DEBUG, "(%P|%t) client - event loop finished\n")); + ACE_DEBUG ((LM_DEBUG, "(%P|%t) scavenger - event loop finished\n")); orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; diff --git a/TAO/tests/Nested_Upcall_Crash/server.cpp b/TAO/tests/Nested_Upcall_Crash/server.cpp index 03e211ea141..5c8e90ede59 100644 --- a/TAO/tests/Nested_Upcall_Crash/server.cpp +++ b/TAO/tests/Nested_Upcall_Crash/server.cpp @@ -196,8 +196,9 @@ int Sleeper::handle_timeout (ACE_Time_Value const & , void const *) { + // ACE_DEBUG((LM_DEBUG, "(%P|%t) - Sleeper::handle_timeout()\n")); ACE_Time_Value clk_tck (0, 1000000 / HZ); - this->orb_->run(clk_tck); + this->orb_->perform_work(clk_tck); return 0; } diff --git a/TAO/tests/Param_Test/objref.cpp b/TAO/tests/Param_Test/objref.cpp index c629356d959..8a67d0ff3e7 100644 --- a/TAO/tests/Param_Test/objref.cpp +++ b/TAO/tests/Param_Test/objref.cpp @@ -159,12 +159,11 @@ Test_ObjRef::run_sii_test (Param_Test_ptr objref { ACE_TRY { - Coffee_out out (this->out_.out ()); - - this->ret_ = objref->test_objref (this->in_.in (), - this->inout_.inout (), - out - ACE_ENV_ARG_PARAMETER); + this->ret_ = + objref->test_objref (this->in_.in (), + this->inout_.inout (), + this->out_.out () + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; return 0; @@ -191,7 +190,10 @@ Test_ObjRef::check_validity (void) || CORBA::is_nil (this->inout_.in ()) || CORBA::is_nil (this->out_.in ()) || CORBA::is_nil (this->ret_.in ())) - return 0; + { + ACE_ERROR ((LM_ERROR, "Nil object references returned\n")); + return 0; + } Coffee::Desc_var in_desc = this->in_->description (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; @@ -223,7 +225,7 @@ Test_ObjRef::check_validity (void) } ACE_CATCHANY { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Retriving description"); + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Retrieving description"); return 0; } ACE_ENDTRY; @@ -243,31 +245,47 @@ Test_ObjRef::print_values (void) // Env. variable ACE_DECLARE_NEW_CORBA_ENV; + Coffee::Desc_var in_desc; + Coffee::Desc_var inout_desc; + Coffee::Desc_var out_desc; Coffee::Desc_var ret_desc; const char *in = 0; const char *out = 0; const char *inout = 0; + const char *ret = 0; ACE_TRY { - Coffee::Desc_var in_desc = - this->in_->description (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - in = in_desc->name.in (); - - Coffee::Desc_var inout_desc = - this->inout_->description (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - inout = inout_desc->name.in (); - - Coffee::Desc_var out_desc = - this->out_->description (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - out = out_desc->name.in (); - - ret_desc = this->out_->description (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; + if (!CORBA::is_nil (this->in_.in ())) + { + in_desc = + this->in_->description (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + in = in_desc->name.in (); + } + + if (!CORBA::is_nil (this->inout_.in ())) + { + inout_desc = + this->inout_->description (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + inout = inout_desc->name.in (); + } + + if (!CORBA::is_nil (this->out_.in ())) + { + out_desc = + this->out_->description (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + out = out_desc->name.in (); + } + + if (!CORBA::is_nil (this->ret_.in ())) + { + ret_desc = + this->ret_->description (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + ret = ret_desc->name.in (); + } } ACE_CATCHANY { @@ -277,7 +295,6 @@ Test_ObjRef::print_values (void) ACE_ENDTRY; ACE_CHECK; - const char* ret = ret_desc->name.in (); ACE_DEBUG ((LM_DEBUG, @@ -286,8 +303,9 @@ Test_ObjRef::print_values (void) "inout = %s, " "out = %s, " "ret = %s*=*=*=*=*=\n", - in, - inout, - out, - ret)); + in?in:"ERROR(null string)", + inout?inout:"ERROR(null string)", + out?out:"ERROR(null string)", + ret?ret:"ERROR(null string)" + )); } |