MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / update_schedule

Method update_schedule

dds/DCPS/SporadicTask.cpp:75–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

73}
74
75void SporadicTask::update_schedule(ReactorWrapper& reactor_wrapper)
76{
77 ACE_Guard<ACE_Thread_Mutex> guard(mutex_);
78
79 if ((!desired_scheduled_ && timer_id_ != ReactorWrapper::InvalidTimerId) ||
80 (desired_scheduled_ && timer_id_ != ReactorWrapper::InvalidTimerId && desired_next_time_ != actual_next_time_)) {
81 reactor_wrapper.cancel(timer_id_);
82 timer_id_ = ReactorWrapper::InvalidTimerId;
83 }
84
85 if (desired_scheduled_ && timer_id_ == ReactorWrapper::InvalidTimerId) {
86 timer_id_ = reactor_wrapper.schedule(*this, 0, desired_delay_);
87 if (timer_id_ == ReactorWrapper::InvalidTimerId) {
88 if (log_level >= LogLevel::Error) {
89 ACE_ERROR((LM_ERROR,
90 "(%P|%t) ERROR: SporadicTask::execute_i: "
91 "failed to schedule timer %p\n", ACE_TEXT("")));
92 }
93 } else {
94 actual_next_time_ = desired_next_time_;
95 }
96 }
97}
98
99}
100}

Callers 1

executeMethod · 0.80

Calls 2

cancelMethod · 0.45
scheduleMethod · 0.45

Tested by

no test coverage detected