diff options
Diffstat (limited to 'TAO/tao/POA.cpp')
-rw-r--r-- | TAO/tao/POA.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/TAO/tao/POA.cpp b/TAO/tao/POA.cpp index faa39069abc..7773fe671d1 100644 --- a/TAO/tao/POA.cpp +++ b/TAO/tao/POA.cpp @@ -9,6 +9,9 @@ // auto_ptr class #include "ace/Auto_Ptr.h" +// Timeprobes class +#include "tao/Timeprobe.h" + // This is the maximum space require to convert the ulong into a // string. const int TAO_POA::max_space_required_for_ulong = 24; @@ -2186,6 +2189,8 @@ TAO_POA::locate_poa_i (const TAO_ObjectKey &key, PortableServer::ObjectId_out id, CORBA::Environment &env) { + ACE_FUNCTION_TIMEPROBE (TAO_POA_LOCATE_POA_I_START); + TAO_POA::String poa_name; CORBA::Boolean persistent = CORBA::B_FALSE; TAO_Temporary_Creation_Time poa_creation_time; @@ -2339,6 +2344,8 @@ TAO_POA::locate_poa_and_servant_i (const TAO_ObjectKey &key, TAO_POA *&poa_impl, CORBA::Environment &env) { + ACE_FUNCTION_TIMEPROBE (TAO_POA_LOCATE_POA_AND_SERVANT_I_START); + poa_impl = this->locate_poa_i (key, id, env); @@ -2352,9 +2359,13 @@ TAO_POA::locate_poa_and_servant_i (const TAO_ObjectKey &key, if (poa_impl->policies ().servant_retention () == PortableServer::RETAIN) { PortableServer::Servant servant = 0; - if (poa_impl->active_object_map ().find (*id.ptr (), servant) != -1) - // Success - return servant; + { + ACE_FUNCTION_TIMEPROBE (TAO_POA_FIND_SERVANT_START); + + if (poa_impl->active_object_map ().find (*id.ptr (), servant) != -1) + // Success + return servant; + } } // If the POA has the NON_RETAIN policy or has the RETAIN policy but @@ -2506,6 +2517,8 @@ TAO_POA::dispatch_servant (const TAO_ObjectKey &key, void *context, CORBA::Environment &env) { + ACE_FUNCTION_TIMEPROBE (TAO_POA_DISPATCH_SERVANT_START); + // Lock access to the POAManager for the duration of this transaction TAO_POA_READ_GUARD (ACE_Lock, monitor, this->lock (), env); @@ -2545,10 +2558,14 @@ TAO_POA::dispatch_servant_i (const TAO_ObjectKey &key, ¤t_context, env); - // Upcall - servant->_dispatch (req, - context, - env); + { + ACE_FUNCTION_TIMEPROBE (TAO_SERVANT_DISPATCH_START); + + // Upcall + servant->_dispatch (req, + context, + env); + } // Cleanup from upcall poa->post_invoke (servant, @@ -2660,6 +2677,8 @@ TAO_POA::parse_key (const TAO_ObjectKey &key, TAO_Temporary_Creation_Time &poa_creation_time, int temporary_id) { + ACE_FUNCTION_TIMEPROBE (TAO_POA_PARSE_KEY_START); + // Try to find the last separator int last_token_position = this->rfind (key, TAO_POA::name_separator ()); |