【问题标题】:how to end a reactor event loop in ace如何在 ace 中结束反应堆事件循环
【发布时间】:2012-02-02 11:42:05
【问题描述】:

我在 ace 中找到了两种结束反应器事件循环的方法:

1. ACE_Reactor::instance()->end_reactor_event_loop();
2. ACE_Reactor::instance()->close()

它们之间有什么区别?我应该使用哪个?

【问题讨论】:

    标签: ace reactor


    【解决方案1】:

    取决于你想做什么:

    看看this documentation

    两者的区别基本上是:

    end_reactor_event_loop 停止反应器对消息的处理,但不会释放资源,也不会丢弃队列中已经存在的任何消息。

    另一方面,close 将执行上述操作并释放与ACE_Reactor::intance() 的实现相关的所有资源,从而丢弃消息,删除与反应器相关的所有套接字和处理程序等。

    因此,根据您所做的事情,您可以选择其中一个或另一个,您需要提供更多详细信息。

    【讨论】:

    • 我在析构函数中尝试了 end_reactor_event_loop() 并且需要 30 秒才能关闭。 Close() 需要几秒钟。
    • 简单而详尽的答案,对我帮助很大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多