| 2359 | } |
| 2360 | |
| 2361 | void 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 | |
| 2386 | DomainParticipantImpl::AutomaticLivelinessTimer::AutomaticLivelinessTimer(DomainParticipantImpl& impl) |
| 2387 | : LivelinessTimer (impl, DDS::AUTOMATIC_LIVELINESS_QOS) |
nothing calls this directly
no test coverage detected