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

Method execute

dds/DCPS/DomainParticipantImpl.cpp:2361–2384  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2359}
2360
2361void DomainParticipantImpl::LivelinessTimer::execute(const MonotonicTimePoint& now)
2362{
2363 ACE_GUARD(ACE_Thread_Mutex, guard, lock_);
2364
2365 if (recalculate_interval_) {
2366 ACE_Reverse_Lock<ACE_Thread_Mutex> rev_lock(lock_);
2367 TimeDuration interval;
2368 while (recalculate_interval_) {
2369 recalculate_interval_ = false;
2370 ACE_GUARD(ACE_Reverse_Lock<ACE_Thread_Mutex>, rev_guard, rev_lock);
2371 interval = impl_.liveliness_check_interval(kind_);
2372 }
2373 interval_ = interval;
2374 }
2375
2376 scheduled_ = false;
2377
2378 if (!interval_.is_max()) {
2379 dispatch(now);
2380 last_liveliness_check_ = now;
2381 schedule(interval_);
2382 scheduled_ = true;
2383 }
2384}
2385
2386DomainParticipantImpl::AutomaticLivelinessTimer::AutomaticLivelinessTimer(DomainParticipantImpl& impl)
2387 : LivelinessTimer (impl, DDS::AUTOMATIC_LIVELINESS_QOS)

Callers

nothing calls this directly

Calls 15

dispatchFunction · 0.85
scheduleFunction · 0.85
delete_publisherMethod · 0.80
delete_subscriberMethod · 0.80
delete_topic_iMethod · 0.80
acquireMethod · 0.80
notify_allMethod · 0.80
lockMethod · 0.45
cancelMethod · 0.45
beginMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected