diff options
Diffstat (limited to 'ace/WFMO_Reactor.cpp')
-rw-r--r-- | ace/WFMO_Reactor.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/ace/WFMO_Reactor.cpp b/ace/WFMO_Reactor.cpp index 9509def874b..5e13765d86e 100644 --- a/ace/WFMO_Reactor.cpp +++ b/ace/WFMO_Reactor.cpp @@ -160,8 +160,14 @@ ACE_WFMO_Reactor_Handler_Repository::remove_handler_i (size_t index, } // Normal event entries. else - // Make sure that the <to_be_removed_masks> is the NULL_MASK - to_be_removed_masks = ACE_Event_Handler::NULL_MASK; + { + if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL)) + // Preserve DONT_CALL + to_be_removed_masks = ACE_Event_Handler::DONT_CALL; + else + // Make sure that the <to_be_removed_masks> is the NULL_MASK + to_be_removed_masks = ACE_Event_Handler::NULL_MASK; + } // If there are no more events that the <Event_Handler> is // interested in, or this is a non-I/O entry, schedule the @@ -202,8 +208,14 @@ ACE_WFMO_Reactor_Handler_Repository::remove_suspended_handler_i (size_t index, } // Normal event entries. else - // Make sure that the <to_be_removed_masks> is the NULL_MASK - to_be_removed_masks = ACE_Event_Handler::NULL_MASK; + { + if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::DONT_CALL)) + // Preserve DONT_CALL + to_be_removed_masks = ACE_Event_Handler::DONT_CALL; + else + // Make sure that the <to_be_removed_masks> is the NULL_MASK + to_be_removed_masks = ACE_Event_Handler::NULL_MASK; + } // If there are no more events that the <Event_Handler> is // interested in, or this is a non-I/O entry, schedule the |