summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
index 681470630e8..b6abd44a072 100644
--- a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
@@ -68,9 +68,16 @@ RtecScheduler::Scheduler_ptr static_server ()
info[i]->subpriority = rt_info[i].subpriority;
info[i]->preemption_priority = rt_info[i].preemption_priority;
}
- server_ = new ACE_Runtime_Scheduler (entry_count, info);
+ static ACE_Runtime_Scheduler scheduler(entry_count, info);
+ TAO_TRY
+ {
+ server_ = scheduler._this (TAO_TRY_ENV);
+ TAO_CHECK_ENV;
- if (server_ == 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "ACE_Scheduler_Factory - configured static server\n"));
+ }
+ TAO_CATCHANY
{
for (int i = 0; i < entry_count; ++i)
{
@@ -81,9 +88,7 @@ RtecScheduler::Scheduler_ptr static_server ()
"ACE_Scheduler_Factory::config_runtime - "
"cannot allocate server\n"), 0);
}
- ACE_DEBUG ((LM_DEBUG,
- "ACE_Scheduler_Factory - configured static server\n"));
- CORBA::Object::_duplicate (server_);
+ TAO_ENDTRY;
return server_;
}