[ace-users] Getting ACE_Reactor to suspend input processing
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
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
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):
[What example failed? What module failed to compile?]
DOES THE PROBLEM AFFECT:
On Unix systems, did you run make realclean first?
OTHER (please specify)?
[Please indicate whether ACE, your application, or both are affected.]
Can I use ACE_Reactor::suspend_handlers() (or some other function) to
stop the Reactor from handling input events?
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?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Ace-users