diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp index f641a312088..3e1c589bbfb 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp @@ -25,6 +25,9 @@ TAO_LB_Pull_Handler::handle_timeout ( TAO_LB_Location_Map::iterator end = this->location_map_.end (); + if (being == end) + return 0; // No work to be done. + // Iterate over all registered load monitors. // // @todo This could be potentially very slow. Improve concurrent @@ -60,5 +63,22 @@ TAO_LB_Pull_Handler::handle_timeout ( } } + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + this->balancing_strategy_->analyze_loads (this->location_map_, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + // Catch the exception and ignore it. + + if (TAO_debug_level > 0) + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "(%P|%t) Load analysis exception"); + } + ACE_ENDTRY; + return 0; } |