怎么在ACE_Reactor事件循环开启之后,再注册一个事件处理器?
我想在reactor事件循环开启之后,再注册一个事件处理器。事件循环在一个线程中,线程在运行,我想在另一个线程中,往该reactor中再注册一个事件处理器,请问大家,这个需求怎么实现呢? 没明白,为何要求这样做? 比如,我开了一个服务端,监听某个端口,然后开启事件循环。在运行过程中的某一个时刻,服务端需要再监听另一个端口,这样需要创建另一个acceptor,并注册到事件循环之中,但是这时事件循环已经开启了,这个新的acceptor怎么加进去呢?再进一步,如何实现在任何时刻往已经开启的事件循环中,任意添加新的acceptor 直接调register_handler不行么? Reactor自己有锁会防止多线程竞争问题,但是被注册的socket不会立即被检测,而是要等到下次select时才可以进行检测,可以使用wakeup_all_threads唤醒等待的线程立即处理新加入的句柄。
页:
[1]