Я использую ACE-акцептор для прослушивания порта TCP.Мой класс наследует от My_Svc_Handler и реализует функцию int open (void *) класса My_Svc_Handler.Во всех примерах, которые я видел, внутри функции открытия они регистрируют реактор:
ACE_Reactor::instance()->register_handler(this,
ACE_Event_Handler::READ_MASK);
Я не понимаю, зачем нам регистрироваться?У меня уже есть реактор, ожидающий события.Это я определил в основном:
typedef ACE_Acceptor<My_Svc_Handler,ACE_LSOCK_ACCEPTOR> MyAcceptor;
int main(int argc, char* argv[]){
ACE_UNIX_Addr addr("/tmp/addr.ace");
MyAcceptor acceptor(address, ACE_Reactor::instance());
while(1) /* Start the reactors event loop */
ACE_Reactor::instance()->handle_events();
}
Думаю, я не понимаю, когда вызывается функция open.Есть ли другой способ в основном не запускать while (1)?