jolly_w23 发表于 2008-5-17 10:04:50

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

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方法失败呢?

jolly_w23 发表于 2008-5-17 10:35:12

解决了.ACE_Reactor的register_handler方法使用了双重分派来通过处理器的get_handle()方法获取句柄.得override事件处理器的get_handle方法.

[ 本帖最后由 jolly_w23 于 2008-5-17 10:43 编辑 ]
页: [1]
查看完整版本: 注册handler_input返回-1,怎么解决.