summaryrefslogtreecommitdiff
path: root/ace/WFMO_Reactor.cpp
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-10-04 08:22:59 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-10-04 08:22:59 +0000
commit9beb73949f9eb59c74460374b4035bfbd6817bcf (patch)
tree46a2f588037f54ff6ccc0536d528f06df6c80ff7 /ace/WFMO_Reactor.cpp
parent5e8aecc276cf35301db83afaa1fc64d4db00d81a (diff)
downloadATCD-9beb73949f9eb59c74460374b4035bfbd6817bcf.tar.gz
*** empty log message ***
Diffstat (limited to 'ace/WFMO_Reactor.cpp')
-rw-r--r--ace/WFMO_Reactor.cpp42
1 files changed, 24 insertions, 18 deletions
diff --git a/ace/WFMO_Reactor.cpp b/ace/WFMO_Reactor.cpp
index 3fd9616c6aa..3af2789e045 100644
--- a/ace/WFMO_Reactor.cpp
+++ b/ace/WFMO_Reactor.cpp
@@ -58,28 +58,28 @@ void
ACE_WFMO_Reactor_Handler_Repository::remove_network_events_i (long &existing_masks,
ACE_Reactor_Mask to_be_removed_masks)
{
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::READ_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::READ_MASK))
ACE_CLR_BITS (existing_masks, FD_READ);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::WRITE_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::WRITE_MASK))
ACE_CLR_BITS (existing_masks, FD_WRITE);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::EXCEPT_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::EXCEPT_MASK))
ACE_CLR_BITS (existing_masks, FD_OOB);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::ACCEPT_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::ACCEPT_MASK))
ACE_CLR_BITS (existing_masks, FD_ACCEPT);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::CONNECT_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::CONNECT_MASK))
ACE_CLR_BITS (existing_masks, FD_CONNECT);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::QOS_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::QOS_MASK))
ACE_CLR_BITS (existing_masks, FD_QOS);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::GROUP_QOS_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::GROUP_QOS_MASK))
ACE_CLR_BITS (existing_masks, FD_GROUP_QOS);
- if (ACE_BIT_STRICTLY_ENABLED (to_be_removed_masks, ACE_Event_Handler::CLOSE_MASK))
+ if (ACE_BIT_ENABLED (to_be_removed_masks, ACE_Event_Handler::CLOSE_MASK))
ACE_CLR_BITS (existing_masks, FD_CLOSE);
}
@@ -818,8 +818,11 @@ ACE_WFMO_Reactor_Handler_Repository::add_network_events_i (ACE_Reactor_Mask mask
// First go through the current entries
size_t total_entries = this->max_handlep1_;
+ // Look for all entries in the current handles for matching handle
+ // (except those that have been scheduled for deletion)
for (i = 0; i < total_entries && !found; i++)
- if (io_handle == this->current_info_[i].io_handle_)
+ if (io_handle == this->current_info_[i].io_handle_ &&
+ !this->current_info_[i].delete_entry_)
{
found = 1;
modified_masks = &this->current_info_[i].network_events_;
@@ -830,8 +833,11 @@ ACE_WFMO_Reactor_Handler_Repository::add_network_events_i (ACE_Reactor_Mask mask
// Then pass through the suspended handles
total_entries = this->suspended_handles_;
+ // Look for all entries in the suspended handles for matching handle
+ // (except those that have been scheduled for deletion)
for (i = 0; i < total_entries && !found; i++)
- if (io_handle == this->current_suspended_info_[i].io_handle_)
+ if (io_handle == this->current_suspended_info_[i].io_handle_ &&
+ !this->current_suspended_info_[i].delete_entry_)
{
found = 1;
modified_masks = &this->current_suspended_info_[i].network_events_;
@@ -839,28 +845,28 @@ ACE_WFMO_Reactor_Handler_Repository::add_network_events_i (ACE_Reactor_Mask mask
event_handle = this->current_suspended_info_[i].event_handle_;
}
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::READ_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
ACE_SET_BITS (*modified_masks, FD_READ);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
ACE_SET_BITS (*modified_masks, FD_WRITE);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
ACE_SET_BITS (*modified_masks, FD_OOB);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
ACE_SET_BITS (*modified_masks, FD_ACCEPT);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
ACE_SET_BITS (*modified_masks, FD_CONNECT);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::QOS_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::QOS_MASK))
ACE_SET_BITS (*modified_masks, FD_QOS);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::GROUP_QOS_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::GROUP_QOS_MASK))
ACE_SET_BITS (*modified_masks, FD_GROUP_QOS);
- if (ACE_BIT_STRICTLY_ENABLED (mask, ACE_Event_Handler::CLOSE_MASK))
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CLOSE_MASK))
ACE_SET_BITS (*modified_masks, FD_CLOSE);
new_masks = *modified_masks;