1841 if (! data_reader) {
1847 bool timer_was_reset =
false;
1849 if (local_timer_id != -1 && cancel) {
1852 ACE_TEXT(
"(%P|%t) DataReaderImpl::LivelinessTimer::check_liveliness_i: ")
1853 ACE_TEXT(
" canceling timer for reader %C.\n"),
1854 LogGuid(data_reader->get_guid()).c_str()));
1864 ACE_TEXT(
"(%P|%t) ERROR: DataReaderImpl::LivelinessTimer::check_liveliness_i: ")
1868 timer_was_reset =
true;
1873 int alive_writers = 0;
1892 data_reader->writers_lock_);
1893 WriterMapType writers = data_reader->writers_;
1894 read_guard.release();
1896 for (WriterMapType::iterator iter = writers.begin();
1897 iter != writers.end();
1902 if (!next_absolute.is_max()) {
1904 smallest = std::min(smallest, next_absolute);
1909 if (!alive_writers) {
1917 ACE_TEXT(
"(%P|%t) DataReaderImpl::LivelinessTimer::check_liveliness_i: ")
1918 ACE_TEXT(
"reader %C has %d live writers; from_reactor=%d\n"),
1919 LogGuid(data_reader->get_guid()).c_str(),
1925 if (alive_writers) {
1927 TimeDuration relative;
1928 if (now < smallest) {
1929 relative = smallest - now;
1931 relative = TimeDuration(0, 1);
1937 ACE_TEXT(
"(%P|%t) ERROR: DataReaderImpl::LivelinessTimer::check_liveliness_i: ")
#define ACE_READ_GUARD(MUTEX, OBJ, LOCK)
virtual ACE_Reactor * reactor() const
WeakRcHandle< DataReaderImpl > data_reader_
virtual long schedule_timer(ACE_Event_Handler *event_handler, const void *arg, const ACE_Time_Value &delay, const ACE_Time_Value &interval=ACE_Time_Value::zero)
TimePoint_T< MonotonicClock > MonotonicTimePoint
static const TimePoint_T< MonotonicClock > max_value
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
int purge_pending_notifications(ACE_Event_Handler *eh, ACE_Reactor_Mask=ACE_Event_Handler::ALL_EVENTS_MASK)
RcHandle< T > lock() const
long liveliness_timer_id_
liveliness timer id; -1 if no timer is set