天涯浪子 发表于 2013-6-17 18:19:46

怎么在ACE_Reactor事件循环开启之后,再注册一个事件处理器?

我想在reactor事件循环开启之后,再注册一个事件处理器。事件循环在一个线程中,线程在运行,我想在另一个线程中,往该reactor中再注册一个事件处理器,请问大家,这个需求怎么实现呢?

winston 发表于 2013-6-18 11:39:32

没明白,为何要求这样做?

天涯浪子 发表于 2013-6-26 09:57:39

比如,我开了一个服务端,监听某个端口,然后开启事件循环。在运行过程中的某一个时刻,服务端需要再监听另一个端口,这样需要创建另一个acceptor,并注册到事件循环之中,但是这时事件循环已经开启了,这个新的acceptor怎么加进去呢?再进一步,如何实现在任何时刻往已经开启的事件循环中,任意添加新的acceptor

yunh 发表于 2014-2-19 15:28:09

    直接调register_handler不行么? Reactor自己有锁会防止多线程竞争问题,但是被注册的socket不会立即被检测,而是要等到下次select时才可以进行检测,可以使用wakeup_all_threads唤醒等待的线程立即处理新加入的句柄。
页: [1]
查看完整版本: 怎么在ACE_Reactor事件循环开启之后,再注册一个事件处理器?