注册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方法失败呢? 解决了.ACE_Reactor的register_handler方法使用了双重分派来通过处理器的get_handle()方法获取句柄.得override事件处理器的get_handle方法.
[ 本帖最后由 jolly_w23 于 2008-5-17 10:43 编辑 ]
页:
[1]