summaryrefslogtreecommitdiff
path: root/ACE/ace/Select_Reactor_Base.cpp
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2008-03-29 08:17:58 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2008-03-29 08:17:58 +0000
commitb395dd5ff5a678dc8d1e33f5dab2390ec3d17152 (patch)
tree944c0eff8d458be41d1c9925817c2847c672c1e5 /ACE/ace/Select_Reactor_Base.cpp
parent39659527923a5808d8d06f547c7f2db8e0e285a3 (diff)
downloadATCD-b395dd5ff5a678dc8d1e33f5dab2390ec3d17152.tar.gz
Sat Mar 29 08:16:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'ACE/ace/Select_Reactor_Base.cpp')
-rw-r--r--ACE/ace/Select_Reactor_Base.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/ACE/ace/Select_Reactor_Base.cpp b/ACE/ace/Select_Reactor_Base.cpp
index 5b40ddfab5b..e86008aaf85 100644
--- a/ACE/ace/Select_Reactor_Base.cpp
+++ b/ACE/ace/Select_Reactor_Base.cpp
@@ -411,6 +411,18 @@ ACE_Select_Reactor_Handler_Repository_Iterator::ACE_Select_Reactor_Handler_Repos
: rep_ (s),
current_ (s->event_handlers_.begin ())
{
+#ifndef ACE_WIN32
+ // Don't use ACE_Array_Base::end() since it may be larger than
+ // event_handlers[max_handlep1_].
+ const_base_iterator const end =
+ &this->rep_->event_handlers_[this->rep_->max_handlep1 ()];
+
+ // Advance to the next element containing a non-zero event handler.
+ // There's no need to do this for the Windows case since the hash
+ // map will only contain non-zero event handlers.
+ while (this->current_ != end && (*(this->current_) == 0))
+ ++this->current_;
+#endif
}
// Pass back the <next_item> that hasn't been seen in the Set.