summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--ChangeLogs/ChangeLog-02a3
-rw-r--r--ChangeLogs/ChangeLog-03a3
-rw-r--r--ace/TP_Reactor.cpp20
-rw-r--r--ace/TP_Reactor.h2
5 files changed, 31 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2416f15a40e..d3922b5a8f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
+ * ace/TP_Reactor.cpp (work_pending): This version is similar to
+ the select reactor except there is no owner check.
+
* ace/Select_Reactor_T.cpp (work_pending): The handle set must be
copied before calling select().
diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a
index 2416f15a40e..d3922b5a8f8 100644
--- a/ChangeLogs/ChangeLog-02a
+++ b/ChangeLogs/ChangeLog-02a
@@ -1,5 +1,8 @@
Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
+ * ace/TP_Reactor.cpp (work_pending): This version is similar to
+ the select reactor except there is no owner check.
+
* ace/Select_Reactor_T.cpp (work_pending): The handle set must be
copied before calling select().
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
index 2416f15a40e..d3922b5a8f8 100644
--- a/ChangeLogs/ChangeLog-03a
+++ b/ChangeLogs/ChangeLog-03a
@@ -1,5 +1,8 @@
Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
+ * ace/TP_Reactor.cpp (work_pending): This version is similar to
+ the select reactor except there is no owner check.
+
* ace/Select_Reactor_T.cpp (work_pending): The handle set must be
copied before calling select().
diff --git a/ace/TP_Reactor.cpp b/ace/TP_Reactor.cpp
index f8b0bca927b..ef21a298a00 100644
--- a/ace/TP_Reactor.cpp
+++ b/ace/TP_Reactor.cpp
@@ -109,6 +109,26 @@ ACE_TP_Reactor::dispatch_io_set (int number_of_active_handles,
}
int
+ACE_TP_Reactor::work_pending (const ACE_Time_Value &timeout)
+{
+ ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token,
+ ace_mon, this->token_, -1));
+
+ u_long width = (u_long) this->handler_rep_.max_handlep1 ();
+
+ ACE_Select_Reactor_Handle_Set fd_set;
+ fd_set.rd_mask_ = this->wait_set_.rd_mask_;
+ fd_set.wr_mask_ = this->wait_set_.wr_mask_;
+ fd_set.ex_mask_ = this->wait_set_.ex_mask_;
+
+ return ACE_OS::select (int (width),
+ fd_set.rd_mask_,
+ fd_set.wr_mask_,
+ fd_set.ex_mask_,
+ timeout);
+}
+
+int
ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time)
{
ACE_TRACE ("ACE_TP_Reactor::handle_events");
diff --git a/ace/TP_Reactor.h b/ace/TP_Reactor.h
index 6a093d872ce..21962cf8164 100644
--- a/ace/TP_Reactor.h
+++ b/ace/TP_Reactor.h
@@ -143,6 +143,8 @@ public:
virtual int handle_events (ACE_Time_Value &max_wait_time);
+ virtual int work_pending (const ACE_Time_Value &timeout);
+
virtual int mask_ops (ACE_Event_Handler *eh,
ACE_Reactor_Mask mask,
int ops);