| 2483 | } |
| 2484 | |
| 2485 | void |
| 2486 | DataWriterImpl::liveliness_send_task(const MonotonicTimePoint& now) |
| 2487 | { |
| 2488 | ThreadStatusManager::Event ev(TheServiceParticipant->get_thread_status_manager()); |
| 2489 | |
| 2490 | ACE_Guard<ACE_Recursive_Thread_Mutex> guard(lock_); |
| 2491 | OPENDDS_ASSERT(qos_.liveliness.kind == DDS::AUTOMATIC_LIVELINESS_QOS); |
| 2492 | |
| 2493 | const TimeDuration elapsed = now - last_liveliness_activity_time_; |
| 2494 | |
| 2495 | if (elapsed < liveliness_send_interval_) { |
| 2496 | // Reschedule. |
| 2497 | liveliness_send_task_->schedule(liveliness_send_interval_ - elapsed); |
| 2498 | return; |
| 2499 | } |
| 2500 | |
| 2501 | send_liveliness(now); |
| 2502 | liveliness_send_task_->schedule(liveliness_send_interval_); |
| 2503 | } |
| 2504 | |
| 2505 | void |
| 2506 | DataWriterImpl::liveliness_lost_task(const MonotonicTimePoint& now) |