[ace-users] Getting ACE_Reactor to suspend input processing

Jules d'Entremont Jules.dEntremont at SolaceSystems.com
Tue Jul 31 10:08:25 CDT 2007


    ACE VERSION: 5.5.1

 

    HOST MACHINE and OPERATING SYSTEM:  Linux dev228
2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 i686 i386
GNU/Linux

 

    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:

    COMPILER NAME AND VERSION (AND PATCHLEVEL):  g++ (GCC) 3.3.2

 

    THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-

    specific file, simply state which one]:  #include "config-linux.h"

 

    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you

    use a link to a platform-specific file, simply state which one

    (unless this isn't used in this case, e.g., with Microsoft Visual

    C++)]:  platform_linux.GNU

 

    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features

    (used by MPC when you generate your own makefiles):

 

    AREA/CLASS/EXAMPLE AFFECTED:

[What example failed?  What module failed to compile?]

 

    DOES THE PROBLEM AFFECT:

        COMPILATION?

        LINKING?

            On Unix systems, did you run make realclean first?

        EXECUTION?

        OTHER (please specify)?

[Please indicate whether ACE, your application, or both are affected.]

 

    SYNOPSIS:

Can I use ACE_Reactor::suspend_handlers() (or some other function) to
stop the Reactor from handling input events?

 

    DESCRIPTION:

In my SDK, I use ACE_Reactor to read messages from multiple connected
ACE_Sock_Streams;  these messages are placed on a message queue to be
processed by another thread.  When the queue fills, I need to cause the
Reactor to stop reading from those sockets so that TCP flow control will
backpressure the sender.  The rather terse documentation of
suspend_handlers ("Suspend all registered handles temporarily.") leads
me to believe that this will suspend all handlers, not just input
handlers as I need.  In particular, I need output handlers and
(especially) timers to continue working as normal.  

 

Is there an interface that does what I want?  If not, how could I
achieve this?  Is using multiple reactors a good approach?

 

Jules.

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20070731/81987feb/attachment-0001.htm


More information about the Ace-users mailing list