[Ace-users] [ace-users] ACE_Select_Reactor not calling handle_output( )
p_j_r_m at yahoo.com
Mon Nov 26 15:23:35 CST 2007
After reading more about ACE_Reactor, I have seen that after the schedule_xxx ( ) functions are called the reactor does not notice the mask changes until a new event comes. So I have put a notify( ) after each schedule call so reactor will re-examine the mask inmediatly, but the problem is the same: handle_output( ) is not called.
I've also tryed to register()/unregister() my event handler at the right points with the right mask, with the same result.
Also, I have checked the TP_Reactor_Test example, which does the same things for schedule functions (although with a thread pool) and it seems to work.
What else should I try for my simple test program?
Steve Huston <shuston at riverace.com> wrote: Thanks very much for the PROBLEM-REPORT-FORM.
> ACE VERSION: 5.5
> HOST MACHINE and OPERATING SYSTEM:
> Linux 2.6.9 Kernel.CentOS4.2 (32bit)
> I'm building a simple echo test program.
> I have an ACE_Select_Reactor listening in a port waiting data to
> be sent by telnet, for example. The reactor is registered for READ
> events. When telnet client connects, I write eight bytes in
> ACE_Reactors calls handle_input() , who tries to read the 8 bytes,
> and then (still inside handle_input() ) it does a schedule_cancel( )
> on read events, and a schedule_wakeup for WRITE events.
> I think ACE_Reactor should call handle_ouput( ) , but it is never
> called, so I can send the answer to the client. Only handle_input(
> gets called.
Right, this is expected when using schedule_wakeup() and
cancel_wakeup(). Please see C++NPv2 section 3.5 for why this is and
what you need to do to have your events handled as you want.
For more info on C++NPv2, please see
Steve Huston, Riverace Corporation
Want to take ACE training on YOUR schedule?
Be a better pen pal. Text or chat with friends inside Yahoo! Mail. See how.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Ace-users