diff options
Diffstat (limited to 'ace/TP_Reactor.h')
-rw-r--r-- | ace/TP_Reactor.h | 35 |
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 &); |