[Ace-users] [ace-users] ACE_Select_Reactor not calling handle_output( )

Steve Huston shuston at riverace.com
Tue Nov 27 16:40:45 CST 2007


Thanks for your reply. I'm not sure what else could be wrong offhand.
If you can run your code through gdb you can track down what's
happening (and learn a LOT about how the reactor internals work ;-).
If you need this figured out quicker and would like some consulting
help on it, please let me know.
 
-Steve

--
Steve Huston, Riverace Corporation
Want to take ACE training on YOUR schedule?
See http://www.riverace.com/training.htm


-----Original Message-----
From: p_j_r_m [mailto:p_j_r_m at yahoo.com] 
Sent: Monday, November 26, 2007 4:24 PM
To: Steve Huston; ace-users at cse.wustl.edu
Subject: RE: [ace-users] ACE_Select_Reactor not calling handle_output(
)



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?
 
Thank you

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)
> (snip)
> DESCRIPTION:
> 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
terminal.
> 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.

Ok.

> 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
http://www.riverace.com/acebooks/index.htm#cnpv2

Best regards,
-Steve

--
Steve Huston, Riverace Corporation
Want to take ACE training on YOUR schedule?
See http://www.riverace.com/training.htm







  _____  

Be a better pen pal. Text or chat with friends inside Yahoo! Mail. See
<http://us.rd.yahoo.com/evt=51732/*http://overview.mail.yahoo.com/>
how.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20071127/95d97fa9/attachment.html 


More information about the Ace-users mailing list