运行corba事件循环的线程比较靠谱的方式示例

int
My_Service::svc()
{
{
bool done = false;

while (!done) {
try {
if (orb_->orb_core()->has_shutdown() == false) {
orb_->run();
}

done = true;

} catch (const CORBA::SystemException& sysex) {
sysex._tao_print_exception(
"ERROR: My_Service::svc");

} catch (const CORBA::UserException& userex) {
userex._tao_print_exception(
"ERROR:My_Service::svc");

} catch (const CORBA::Exception& ex) {
ex._tao_print_exception(
"ERROR:My_Service::svc");
}

if (orb_->orb_core()->has_shutdown()) {
done = true;

} else {
orb_->orb_core()->reactor()->reset_reactor_event_loop();
}
}
}

return 0;
}

你可能感兴趣的:(corba)