找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 9157|回复: 3

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

[复制链接]
发表于 2013-6-17 18:19:46 | 显示全部楼层 |阅读模式
我想在reactor事件循环开启之后,再注册一个事件处理器。事件循环在一个线程中,线程在运行,我想在另一个线程中,往该reactor中再注册一个事件处理器,请问大家,这个需求怎么实现呢?
发表于 2013-6-18 11:39:32 | 显示全部楼层
没明白,为何要求这样做?
 楼主| 发表于 2013-6-26 09:57:39 | 显示全部楼层
比如,我开了一个服务端,监听某个端口,然后开启事件循环。在运行过程中的某一个时刻,服务端需要再监听另一个端口,这样需要创建另一个acceptor,并注册到事件循环之中,但是这时事件循环已经开启了,这个新的acceptor怎么加进去呢?再进一步,如何实现在任何时刻往已经开启的事件循环中,任意添加新的acceptor
发表于 2014-2-19 15:28:09 | 显示全部楼层
    直接调register_handler不行么? Reactor自己有锁会防止多线程竞争问题,但是被注册的socket不会立即被检测,而是要等到下次select时才可以进行检测,可以使用wakeup_all_threads唤醒等待的线程立即处理新加入的句柄。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-20 08:39 , Processed in 0.015884 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表