首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何永远从"ACE_Reactor::instance()->run_reactor_event_loop();“块返回?

如何永远从"ACE_Reactor::instance()->run_reactor_event_loop();“块返回?
EN

Stack Overflow用户
提问于 2014-07-29 21:25:41
回答 1查看 1.1K关注 0票数 0

我有一个启动和处理排队项的应用程序。这些项目以定时器帧速率处理。这是使用ACE_Reactor类实现的。

启动这一过程的代码是:

代码语言:javascript
复制
void start() {
  ACE_Reactor::instance()->schedule_timer( this, NULL, ACE_Time_Value(0,1000), ACE_Time_Value(0,1000) );
  ACE_Reactor::instance()->run_reactor_event_loop();
}

handle_timeout (const ACE_Time_Value &current_time, const void *act) {
  <Process item>

  If (more items left)
    return 0;
  else
    return -1;
}

这将导致调用handle_timeout()方法,然后该方法将处理队列中的一个项。当队列中有更多的项时,回调返回0。当队列为空时,回调返回-1,这将停止反应堆循环。

问题是当方法返回时-1 run_reactor_event_loop();仍处于阻塞状态。我希望应用程序完成返回状态代码并退出。我很难找到好的文档。

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-30 08:28:00

返回值并不意味着反应堆结束运行。为了让run_reactor_event_loop()返回,您必须调用某个ACE_Reactor::instance ()->end_reactor_event_loop (),例如,参见包装器/实例/APG/反应堆下面的ACE示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25025268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档