找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 2962|回复: 1

注册handler_input返回-1,怎么解决.

[复制链接]
发表于 2008-5-17 10:04:50 | 显示全部楼层 |阅读模式
class Connector_Task :public ACE_Task< ACE_NULL_SYNCH >.

在Connector_Task的open方法中.
int Connector_Task::open (ACE_INET_Addr& remote_addr)
{
        ACE_SOCK_Connector connector;
       
        if (connector.connect (this->peer (), remote_addr) == -1)
        {
                return -1;
        }
        reactor( ACE_Reactor::instance() );       
        ACE_SET_BITS( mask_ , ACE_Event_Handler::READ_MASK);
        if ( reactor()->register_handler( this , ACE_Event_Handler::READ_MASK ) == -1 )
                return -1;    //跟踪代码进去后就到这句了.
        return 0;
}

为什么会注册handle_input方法失败呢?
 楼主| 发表于 2008-5-17 10:35:12 | 显示全部楼层
解决了.ACE_Reactor的register_handler方法使用了双重分派来通过处理器的get_handle()方法获取句柄.得override事件处理器的get_handle方法.

[ 本帖最后由 jolly_w23 于 2008-5-17 10:43 编辑 ]
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 18:44 , Processed in 0.017104 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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