OpenDDS  Snapshot(2023/04/07-19:43)
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::ReactorTask Class Reference

#include <ReactorTask.h>

Inheritance diagram for OpenDDS::DCPS::ReactorTask:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::ReactorTask:
Collaboration graph
[legend]

Classes

class  Interceptor
 

Public Member Functions

 ReactorTask (bool useAsyncSend)
 
virtual ~ReactorTask ()
 
int open_reactor_task (void *, ThreadStatusManager *thread_status_manager=0, const String &name="")
 
virtual int open (void *ptr)
 
virtual int svc ()
 
virtual int close (u_long flags=0)
 
void stop ()
 
ACE_Reactorget_reactor ()
 
const ACE_Reactorget_reactor () const
 
ACE_thread_t get_reactor_owner () const
 
ACE_Proactorget_proactor ()
 
const ACE_Proactorget_proactor () const
 
void wait_for_startup () const
 
bool is_shut_down () const
 
ReactorInterceptor_rch interceptor () const
 
- Public Member Functions inherited from ACE_Task_Base
 ACE_Task_Base (ACE_Thread_Manager *=0)
 
virtual ~ACE_Task_Base (void)
 
virtual int module_closed (void)
 
virtual int put (ACE_Message_Block *, ACE_Time_Value *=0)
 
virtual int activate (long flags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, int n_threads=1, int force_active=0, long priority=ACE_DEFAULT_THREAD_PRIORITY, int grp_id=-1, ACE_Task_Base *task=0, ACE_hthread_t thread_handles[]=0, void *stack[]=0, size_t stack_size[]=0, ACE_thread_t thread_ids[]=0, const char *thr_name[]=0)
 
virtual int wait (void)
 
virtual int suspend (void)
 
virtual int resume (void)
 
int grp_id (void) const
 
void grp_id (int)
 
ACE_Thread_Managerthr_mgr (void) const
 
void thr_mgr (ACE_Thread_Manager *)
 
int is_reader (void) const
 
int is_writer (void) const
 
size_t thr_count (void) const
 
ACE_thread_t last_thread (void) const
 
- Public Member Functions inherited from ACE_Service_Object
 ACE_Service_Object (ACE_Reactor *=0)
 
virtual ~ACE_Service_Object (void)
 
- Public Member Functions inherited from ACE_Event_Handler
virtual ~ACE_Event_Handler (void)
 
virtual ACE_HANDLE get_handle (void) const
 
virtual void set_handle (ACE_HANDLE)
 
virtual int priority (void) const
 
virtual void priority (int priority)
 
virtual int handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE)
 
virtual int handle_timeout (const ACE_Time_Value &current_time, const void *act=0)
 
virtual int handle_exit (ACE_Process *)
 
virtual int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
 
virtual int handle_signal (int signum, siginfo_t *=0, ucontext_t *=0)
 
virtual int resume_handler (void)
 
virtual int handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE)
 
virtual int handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE)
 
virtual ACE_Reactor_Timer_Interfacereactor_timer_interface (void) const
 
virtual Reference_Count add_reference (void)
 
virtual Reference_Count remove_reference (void)
 
Reference_Counting_Policyreference_counting_policy (void)
 
- Public Member Functions inherited from ACE_Shared_Object
 ACE_Shared_Object (void)
 
virtual ~ACE_Shared_Object (void)
 
virtual int init (int argc, ACE_TCHAR *argv[])
 
virtual int fini (void)
 
virtual int info (ACE_TCHAR **info_string, size_t length=0) const
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Types

enum  State { STATE_UNINITIALIZED, STATE_OPENING, STATE_RUNNING, STATE_SHUT_DOWN }
 
typedef ACE_SYNCH_MUTEX LockType
 
typedef ACE_Guard< LockTypeGuardType
 
typedef ConditionVariable< LockTypeConditionVariableType
 
typedef ACE_Timer_Heap_T< ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall, ACE_SYNCH_RECURSIVE_MUTEX, MonotonicClockTimerQueueType
 

Private Member Functions

virtual void reactor (ACE_Reactor *reactor)
 
virtual ACE_Reactorreactor () const
 
void cleanup ()
 
void wait_for_startup_i () const
 

Private Attributes

LockType lock_
 
ConditionVariableType condition_
 
State state_
 
ACE_Reactorreactor_
 
ACE_thread_t reactor_owner_
 
ACE_Proactorproactor_
 
TimerQueueTypetimer_queue_
 
String name_
 
ReactorInterceptor_rch interceptor_
 
ThreadStatusManagerthread_status_manager_
 

Additional Inherited Members

- Public Types inherited from ACE_Event_Handler
typedef long Reference_Count
 
- Static Public Member Functions inherited from ACE_Task_Base
static ACE_THR_FUNC_RETURN svc_run (void *)
 
static void cleanup (void *object, void *params)
 
- Static Public Member Functions inherited from ACE_Event_Handler
static ACE_THR_FUNC_RETURN read_adapter (void *event_handler)
 
static int register_stdin_handler (ACE_Event_Handler *eh, ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr, int flags=THR_DETACHED)
 
static int remove_stdin_handler (ACE_Reactor *reactor, ACE_Thread_Manager *thr_mgr)
 
- Public Attributes inherited from ACE_Service_Object
 ACE_ALLOC_HOOK_DECLARE
 
- Public Attributes inherited from ACE_Event_Handler
 LO_PRIORITY
 
 HI_PRIORITY
 
 NULL_MASK
 
 READ_MASK
 
 WRITE_MASK
 
 EXCEPT_MASK
 
 ACCEPT_MASK
 
 CONNECT_MASK
 
 TIMER_MASK
 
 QOS_MASK
 
 GROUP_QOS_MASK
 
 SIGNAL_MASK
 
 ALL_EVENTS_MASK
 
 RWE_MASK
 
 DONT_CALL
 
 ACE_EVENT_HANDLER_NOT_RESUMED
 
 ACE_REACTOR_RESUMES_HANDLER
 
 ACE_APPLICATION_RESUMES_HANDLER
 
- Protected Types inherited from ACE_Event_Handler
typedef ACE_Atomic_Op< ACE_SYNCH_MUTEX, Reference_CountAtomic_Reference_Count
 
- Protected Member Functions inherited from ACE_Event_Handler
 ACE_Event_Handler (ACE_Reactor *=0, int priority=ACE_Event_Handler::LO_PRIORITY)
 
- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 
- Protected Attributes inherited from ACE_Task_Base
size_t thr_count_
 
ACE_Thread_Managerthr_mgr_
 
u_long flags_
 
int grp_id_
 
ACE_thread_t last_thread_id_
 
- Protected Attributes inherited from ACE_Event_Handler
Atomic_Reference_Count reference_count_
 

Detailed Description

Definition at line 34 of file ReactorTask.h.

Member Typedef Documentation

◆ ConditionVariableType

Definition at line 80 of file ReactorTask.h.

◆ GuardType

Definition at line 79 of file ReactorTask.h.

◆ LockType

Definition at line 78 of file ReactorTask.h.

◆ TimerQueueType

Definition at line 83 of file ReactorTask.h.

Member Enumeration Documentation

◆ State

Constructor & Destructor Documentation

◆ ReactorTask()

OpenDDS::DCPS::ReactorTask::ReactorTask ( bool  useAsyncSend)
explicit

Definition at line 32 of file ReactorTask.cpp.

References NULL_thread.

33  : condition_(lock_)
35  , reactor_(0)
37  , proactor_(0)
38 #ifdef OPENDDS_REACTOR_TASK_ASYNC
39  , use_async_send_(useAsyncSend)
40 #endif
41  , timer_queue_(0)
43 {
44  ACE_UNUSED_ARG(useAsyncSend);
45 }
ACE_thread_t NULL_thread
ThreadStatusManager * thread_status_manager_
Definition: ReactorTask.h:120
TimerQueueType * timer_queue_
Definition: ReactorTask.h:114
ConditionVariableType condition_
Definition: ReactorTask.h:103
ACE_Proactor * proactor_
Definition: ReactorTask.h:107

◆ ~ReactorTask()

OpenDDS::DCPS::ReactorTask::~ReactorTask ( )
virtual

Definition at line 47 of file ReactorTask.cpp.

References cleanup().

48 {
49  cleanup();
50 }

Member Function Documentation

◆ cleanup()

void OpenDDS::DCPS::ReactorTask::cleanup ( void  )
private

Definition at line 61 of file ReactorTask.cpp.

References ACE_Event_Handler::DONT_CALL, ACE_Proactor_Impl::get_handle(), ACE_Proactor::implementation(), proactor_, reactor_, ACE_Reactor::remove_handler(), and timer_queue_.

Referenced by open_reactor_task(), and ~ReactorTask().

62 {
63 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
64  if (proactor_) {
68  delete proactor_;
69  proactor_ = 0;
70  }
71 #endif
72 
73  delete reactor_;
74  reactor_ = 0;
75  delete timer_queue_;
76  timer_queue_ = 0;
77 }
virtual ACE_HANDLE get_handle(void) const=0
ACE_Proactor_Impl * implementation(void) const
int remove_handler(ACE_HANDLE handle, ACE_Reactor_Mask masks)
TimerQueueType * timer_queue_
Definition: ReactorTask.h:114
ACE_Proactor * proactor_
Definition: ReactorTask.h:107

◆ close()

int OpenDDS::DCPS::ReactorTask::close ( u_long  flags = 0)
virtual

Reimplemented from ACE_Task_Base.

Definition at line 178 of file ReactorTask.cpp.

References OpenDDS::DCPS::RcObject::_remove_ref().

179 {
180  ACE_UNUSED_ARG(flags);
181  // This is called after the reactor threads exit.
182  // We should not set state here since we are not
183  // sure how many reactor threads we will use.
184  // If there is one reactor thread then we should
185  // set the state so the stop will not call
186  // end_reactor_event_loop.
187  // If there are multiple reactor threads, we still
188  // need call end_reactor_event_loop in stop() while
189  // one reactor thread already exited.
190 //MJM: Right.
191 
192  _remove_ref();
193  return 0;
194 }
virtual void _remove_ref()
Definition: RcObject.h:74

◆ get_proactor() [1/2]

ACE_INLINE ACE_Proactor * OpenDDS::DCPS::ReactorTask::get_proactor ( )

Definition at line 37 of file ReactorTask.inl.

References ACE_INLINE, lock_, and proactor_.

Referenced by OpenDDS::DCPS::MulticastDataLink::get_proactor().

38 {
40  return proactor_;
41 }
ACE_Proactor * proactor_
Definition: ReactorTask.h:107

◆ get_proactor() [2/2]

ACE_INLINE const ACE_Proactor * OpenDDS::DCPS::ReactorTask::get_proactor ( ) const

Definition at line 44 of file ReactorTask.inl.

References ACE_INLINE, lock_, and proactor_.

45 {
47  return proactor_;
48 }
ACE_Proactor * proactor_
Definition: ReactorTask.h:107

◆ get_reactor() [1/2]

ACE_INLINE ACE_Reactor * OpenDDS::DCPS::ReactorTask::get_reactor ( void  )

◆ get_reactor() [2/2]

ACE_INLINE const ACE_Reactor * OpenDDS::DCPS::ReactorTask::get_reactor ( void  ) const

Definition at line 21 of file ReactorTask.inl.

References ACE_INLINE, lock_, reactor_, and wait_for_startup_i().

22 {
25  return reactor_;
26 }
void wait_for_startup_i() const
Definition: ReactorTask.cpp:52

◆ get_reactor_owner()

ACE_INLINE ACE_thread_t OpenDDS::DCPS::ReactorTask::get_reactor_owner ( ) const

◆ interceptor()

ACE_INLINE ReactorInterceptor_rch OpenDDS::DCPS::ReactorTask::interceptor ( ) const

◆ is_shut_down()

ACE_INLINE bool OpenDDS::DCPS::ReactorTask::is_shut_down ( ) const

◆ open()

virtual int OpenDDS::DCPS::ReactorTask::open ( void *  ptr)
inlinevirtual

Reimplemented from ACE_Task_Base.

Definition at line 46 of file ReactorTask.h.

References close(), and OPENDDS_POOL_ALLOCATION_FWD.

46  {
47  return open_reactor_task(ptr);
48  }
int open_reactor_task(void *, ThreadStatusManager *thread_status_manager=0, const String &name="")
Definition: ReactorTask.cpp:79

◆ open_reactor_task()

int OpenDDS::DCPS::ReactorTask::open_reactor_task ( void *  ,
ThreadStatusManager thread_status_manager = 0,
const String name = "" 
)

Definition at line 79 of file ReactorTask.cpp.

References ACE_ERROR_RETURN, ACE_Task_Base::activate(), cleanup(), condition_, ACE_WIN32_Proactor::get_handle(), LM_ERROR, lock_, name, name_, OpenDDS::DCPS::ConditionVariable< Mutex >::notify_all(), proactor_, reactor_, ACE_Reactor::register_handler(), state_, STATE_OPENING, STATE_RUNNING, thread_status_manager_, ACE_Reactor::timer_queue(), timer_queue_, and OpenDDS::DCPS::ConditionVariable< Mutex >::wait().

Referenced by OpenDDS::DCPS::TransportImpl::create_reactor_task(), and OpenDDS::DCPS::Service_Participant::get_domain_participant_factory().

82 {
83  GuardType guard(lock_);
84 
85  // If we've already been opened, let's clean up the old stuff
86  cleanup();
87 
88  // thread status reporting support
89  thread_status_manager_ = thread_status_manager;
90  name_ = name;
91 
92  // Set our reactor and proactor pointers to a new reactor/proactor objects.
93 #ifdef OPENDDS_REACTOR_TASK_ASYNC
94  if (use_async_send_ && !reactor_) {
96 
97  ACE_WIN32_Proactor* proactor_impl = new ACE_WIN32_Proactor(0, 1);
98  proactor_ = new ACE_Proactor(proactor_impl, 1);
99  reactor_->register_handler(proactor_impl, proactor_impl->get_handle());
100  } else
101 #endif
102  if (!reactor_) {
103  reactor_ = new ACE_Reactor(new ACE_Select_Reactor, true);
104  proactor_ = 0;
105  }
106 
107  if (!timer_queue_) {
110  }
111 
114 
115  if (activate(THR_NEW_LWP | THR_JOINABLE, 1) != 0) {
116  ACE_ERROR_RETURN((LM_ERROR,
117  "(%P|%t) ERROR: ReactorTask Failed to activate "
118  "itself.\n"),
119  -1);
120  }
121 
122  while (state_ != STATE_RUNNING) {
123  condition_.wait(*thread_status_manager);
124  }
125 
126  return 0;
127 }
virtual ACE_HANDLE get_handle(void) const
bool notify_all()
Unblock all of the threads waiting on this condition.
int register_handler(ACE_Event_Handler *event_handler, ACE_Reactor_Mask mask)
ThreadStatusManager * thread_status_manager_
Definition: ReactorTask.h:120
CvStatus wait(ThreadStatusManager &thread_status_manager)
Block until thread is woken up.
const char *const name
Definition: debug.cpp:60
ACE_Timer_Heap_T< ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall, ACE_SYNCH_RECURSIVE_MUTEX, MonotonicClock > TimerQueueType
Definition: ReactorTask.h:83
TimerQueueType * timer_queue_
Definition: ReactorTask.h:114
ConditionVariableType condition_
Definition: ReactorTask.h:103
ACE_Proactor * proactor_
Definition: ReactorTask.h:107
#define ACE_ERROR_RETURN(X, Y)
virtual int activate(long flags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, int n_threads=1, int force_active=0, long priority=ACE_DEFAULT_THREAD_PRIORITY, int grp_id=-1, ACE_Task_Base *task=0, ACE_hthread_t thread_handles[]=0, void *stack[]=0, size_t stack_size[]=0, ACE_thread_t thread_ids[]=0, const char *thr_name[]=0)
ACE_Guard< LockType > GuardType
Definition: ReactorTask.h:79
int timer_queue(ACE_Timer_Queue *tq)

◆ reactor() [1/2]

void OpenDDS::DCPS::ReactorTask::reactor ( ACE_Reactor reactor)
privatevirtual

Reimplemented from ACE_Event_Handler.

Definition at line 245 of file ReactorTask.cpp.

References ACE_Event_Handler::reactor().

246 {
248 }
virtual ACE_Reactor * reactor(void) const

◆ reactor() [2/2]

ACE_Reactor * OpenDDS::DCPS::ReactorTask::reactor ( void  ) const
privatevirtual

Reimplemented from ACE_Event_Handler.

Definition at line 250 of file ReactorTask.cpp.

References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and ACE_Event_Handler::reactor().

Referenced by stop().

251 {
253 }
virtual ACE_Reactor * reactor(void) const

◆ stop()

void OpenDDS::DCPS::ReactorTask::stop ( void  )

Definition at line 196 of file ReactorTask.cpp.

References ACE_Event_Handler::DONT_CALL, ACE_Reactor::end_reactor_event_loop(), ACE_Proactor_Impl::get_handle(), ACE_Proactor::implementation(), lock_, OPENDDS_ASSERT, proactor_, reactor(), reactor_, ACE_Reactor::remove_handler(), state_, STATE_SHUT_DOWN, STATE_UNINITIALIZED, ACE_Task_Base::thr_mgr(), thread_status_manager_, and ACE_Task_Base::wait().

Referenced by OpenDDS::DCPS::Service_Participant::shutdown(), and OpenDDS::DCPS::TransportImpl::shutdown().

197 {
198  ACE_Reactor* reactor = 0;
199  {
200  GuardType guard(lock_);
201 
203  // We are already "stopped". Just return.
204  return;
205  }
206 
208 
209 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO) || defined (ACE_HAS_AIO_CALLS)
210  // Remove the proactor handler so the reactor stops forwarding messages.
211  if (proactor_) {
215  }
216 #endif
217  reactor = reactor_;
218  }
219 
220  if (reactor) {
221  // We can't hold the lock when we call this, because the reactor threads may need to
222  // access the lock as part of normal execution before they return to the reactor control loop
223  reactor->end_reactor_event_loop();
224  }
225 
226  {
227  GuardType guard(lock_);
228 
229  // In the future, we will likely want to replace this assert with a new "SHUTTING_DOWN" state
230  // which can be used to delay any potential new calls to open_reactor_task()
232 
233  // Let's wait for the reactor task's thread to complete before we
234  // leave this stop method.
236  ThreadStatusManager::Sleeper sleeper(*thread_status_manager_);
237  wait();
238 
239  // Reset the thread manager in case it goes away before the next open.
240  thr_mgr(0);
241  }
242  }
243 }
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66
virtual ACE_HANDLE get_handle(void) const=0
ACE_Proactor_Impl * implementation(void) const
int remove_handler(ACE_HANDLE handle, ACE_Reactor_Mask masks)
ThreadStatusManager * thread_status_manager_
Definition: ReactorTask.h:120
ACE_Thread_Manager * thr_mgr(void) const
int end_reactor_event_loop(void)
virtual ACE_Reactor * reactor() const
virtual int wait(void)
ACE_Proactor * proactor_
Definition: ReactorTask.h:107
ACE_Guard< LockType > GuardType
Definition: ReactorTask.h:79

◆ svc()

int OpenDDS::DCPS::ReactorTask::svc ( void  )
virtual

Reimplemented from ACE_Task_Base.

Definition at line 129 of file ReactorTask.cpp.

References OpenDDS::DCPS::RcObject::_add_ref(), ACE_ERROR, condition_, ACE_Thread_Manager::instance(), interceptor_, LM_ERROR, lock_, name_, OpenDDS::DCPS::ConditionVariable< Mutex >::notify_all(), ACE_Reactor::owner(), reactor_, reactor_owner_, ACE_Reactor::run_reactor_event_loop(), SIG_SETMASK, ACE_OS::sigfillset(), state_, STATE_RUNNING, ACE_Thread_Manager::thr_self(), ACE_OS::thr_sigsetmask(), OpenDDS::DCPS::ThreadStatusManager::thread_status_interval(), thread_status_manager_, and OpenDDS::DCPS::ThreadStatusManager::update_thread_status().

130 {
131  ThreadStatusManager::Start s(*thread_status_manager_, name_);
132 
133  {
134  GuardType guard(lock_);
135 
136  // First off - We need to obtain our own reference to ourselves such
137  // that we don't get deleted while still running in our own thread.
138  // In essence, our current thread "owns" a copy of our reference.
139  // It's all done with the magic of intrusive reference counting!
140  _add_ref();
141 
142  // Ignore all signals to avoid
143  // ERROR: <something descriptive> Interrupted system call
144  // The main thread will handle signals.
145  sigset_t set;
146  ACE_OS::sigfillset(&set);
147  ACE_OS::thr_sigsetmask(SIG_SETMASK, &set, NULL);
148 
149  // Tell the reactor that this thread will be its owner
151  ACE_ERROR((LM_ERROR,
152  "(%P|%t) ERROR: Failed to change the reactor's owner().\n"));
153  }
155 
156  interceptor_ = make_rch<Interceptor>(this, reactor_, reactor_owner_);
157 
158  // Advance the state.
161  }
162 
163  // Tell the reactor to handle events.
165  while (state_ == STATE_RUNNING) {
167  ThreadStatusManager::Sleeper sleeper(*thread_status_manager_);
168  reactor_->run_reactor_event_loop(t, 0);
169  }
170 
171  } else {
172  reactor_->run_reactor_event_loop();
173  }
174 
175  return 0;
176 }
#define ACE_ERROR(X)
bool notify_all()
Unblock all of the threads waiting on this condition.
void thread_status_interval(const TimeDuration &thread_status_interval)
virtual void _add_ref()
Definition: RcObject.h:69
ThreadStatusManager * thread_status_manager_
Definition: ReactorTask.h:120
ReactorInterceptor_rch interceptor_
Definition: ReactorTask.h:119
int thr_sigsetmask(int how, const sigset_t *nsm, sigset_t *osm)
static ACE_Thread_Manager * instance(void)
ConditionVariableType condition_
Definition: ReactorTask.h:103
int thr_self(ACE_hthread_t &)
int sigfillset(sigset_t *s)
ACE_Guard< LockType > GuardType
Definition: ReactorTask.h:79
int owner(ACE_thread_t new_owner, ACE_thread_t *old_owner=0)

◆ wait_for_startup()

ACE_INLINE void OpenDDS::DCPS::ReactorTask::wait_for_startup ( ) const

Definition at line 51 of file ReactorTask.inl.

References ACE_INLINE, lock_, and wait_for_startup_i().

◆ wait_for_startup_i()

void OpenDDS::DCPS::ReactorTask::wait_for_startup_i ( ) const
private

Member Data Documentation

◆ condition_

ConditionVariableType OpenDDS::DCPS::ReactorTask::condition_
mutableprivate

Definition at line 103 of file ReactorTask.h.

Referenced by open_reactor_task(), svc(), and wait_for_startup_i().

◆ interceptor_

ReactorInterceptor_rch OpenDDS::DCPS::ReactorTask::interceptor_
private

Definition at line 119 of file ReactorTask.h.

Referenced by interceptor(), and svc().

◆ lock_

LockType OpenDDS::DCPS::ReactorTask::lock_
mutableprivate

◆ name_

String OpenDDS::DCPS::ReactorTask::name_
private

Definition at line 117 of file ReactorTask.h.

Referenced by open_reactor_task(), and svc().

◆ proactor_

ACE_Proactor* OpenDDS::DCPS::ReactorTask::proactor_
private

Definition at line 107 of file ReactorTask.h.

Referenced by cleanup(), get_proactor(), open_reactor_task(), and stop().

◆ reactor_

ACE_Reactor* OpenDDS::DCPS::ReactorTask::reactor_
private

Definition at line 105 of file ReactorTask.h.

Referenced by cleanup(), get_reactor(), open_reactor_task(), stop(), and svc().

◆ reactor_owner_

ACE_thread_t OpenDDS::DCPS::ReactorTask::reactor_owner_
private

Definition at line 106 of file ReactorTask.h.

Referenced by get_reactor_owner(), and svc().

◆ state_

State OpenDDS::DCPS::ReactorTask::state_
private

Definition at line 104 of file ReactorTask.h.

Referenced by is_shut_down(), open_reactor_task(), stop(), svc(), and wait_for_startup_i().

◆ thread_status_manager_

ThreadStatusManager* OpenDDS::DCPS::ReactorTask::thread_status_manager_
private

Definition at line 120 of file ReactorTask.h.

Referenced by open_reactor_task(), stop(), svc(), and wait_for_startup_i().

◆ timer_queue_

TimerQueueType* OpenDDS::DCPS::ReactorTask::timer_queue_
private

Definition at line 114 of file ReactorTask.h.

Referenced by cleanup(), and open_reactor_task().


The documentation for this class was generated from the following files: