summaryrefslogtreecommitdiff
path: root/ace/TP_Reactor.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/TP_Reactor.h')
-rw-r--r--ace/TP_Reactor.h35
1 files changed, 13 insertions, 22 deletions
diff --git a/ace/TP_Reactor.h b/ace/TP_Reactor.h
index ab1dcf2078c..49b871018f3 100644
--- a/ace/TP_Reactor.h
+++ b/ace/TP_Reactor.h
@@ -162,34 +162,22 @@ public:
virtual void wakeup_all_threads (void);
// Wake up all threads in waiting in the event loop
- // = Any thread can perform a <handle_events>, override the owner()
- // methods to avoid the overhead of setting the owner thread.
-
- virtual int owner (ACE_thread_t n_id, ACE_thread_t *o_id = 0);
- // Set the new owner of the thread and return the old owner.
-
- virtual int owner (ACE_thread_t *);
- // Return the current owner of the thread.
-
ACE_ALLOC_HOOK_DECLARE;
// Declare the dynamic allocation hooks.
protected:
// = Internal methods that do the actual work.
- int dispatch_i (ACE_Time_Value *max_wait_time,
- ACE_EH_Dispatch_Info &event);
- // Dispatch signal, timer, notification handlers and return possibly
- // 1 I/O handler for dispatching. Ideally, it would dispatch nothing,
- // and return dispatch information for only one of (signal, timer,
- // notification, I/O); however, the reactor mechanism is too enmeshed
- // in the timer queue expiry functions and the notification class to
- // do this without some significant redesign.
-
- int dispatch_i_protected (ACE_Time_Value *max_wait_time,
- ACE_EH_Dispatch_Info &event);
- // Only really does anything for Win32. Wraps a call to dispatch_i in an
- // ACE_SEH_TRY block.
+ virtual int dispatch_io_set (int number_of_active_handles,
+ int& number_dispatched,
+ int mask,
+ ACE_Handle_Set& dispatch_mask,
+ ACE_Handle_Set& ready_mask,
+ ACE_EH_PTMF callback);
+ // Overwrites <ACE_Select_Reactor::dispatch_io_set> to *not*
+ // dispatch any event handlers. The information of one activated
+ // event handler is stored away, so that the event handler can be
+ // dispatch later.
virtual void notify_handle (ACE_HANDLE handle,
ACE_Reactor_Mask mask,
@@ -202,6 +190,9 @@ protected:
// Notify the appropriate <callback> in the context of the <eh>
// associated with <handle> that a particular event has occurred.
+ ACE_EH_Dispatch_Info dispatch_info_;
+ // Dispatch information of the activated event handler
+
private:
ACE_TP_Reactor (const ACE_TP_Reactor &);
ACE_TP_Reactor &operator = (const ACE_TP_Reactor &);