- CLockObject lock(m_mutex);
- if (m_deviceStatus != CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC &&
- (m_deviceStatus == CEC_DEVICE_STATUS_UNKNOWN || bForcePoll))
+ cec_bus_device_status status(CEC_DEVICE_STATUS_UNKNOWN);
+ bool bNeedsPoll(false);
+
+ {
+ CLockObject lock(m_mutex);
+ status = m_deviceStatus;
+ bNeedsPoll = (m_deviceStatus != CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC &&
+ (m_deviceStatus == CEC_DEVICE_STATUS_UNKNOWN || bForcePoll));
+ }
+
+ if (bNeedsPoll)