bool is_failed() {
std::scoped_lock locker(m_lock);
- return m_init_failed ||
- m_instance_watcher->is_failed() ||
- m_mirror_watcher->is_failed();
+ bool failed = m_init_failed;
+ if (m_instance_watcher) {
+ failed |= m_instance_watcher->is_failed();
+ }
+ if (m_mirror_watcher) {
+ failed |= m_mirror_watcher->is_failed();
+ }
+ return failed;
}
- utime_t get_failed_ts() {
+ monotime get_failed_ts() {
std::scoped_lock locker(m_lock);
- if (m_instance_watcher) {
- return m_instance_watcher->get_failed_ts();
- }
- if (m_mirror_watcher) {
- return m_mirror_watcher->get_failed_ts();
- }
+ return m_failed_ts;
+ }
- return utime_t();
+ void set_failed_ts() {
+ std::scoped_lock locker(m_lock);
+ m_failed_ts = clock::now();
}
bool is_blocklisted() {