w
This commit is contained in:
@@ -63,13 +63,14 @@ class AndStatus(StatusBase):
|
|||||||
with self._lock:
|
with self._lock:
|
||||||
if self._externally_initiated_completion:
|
if self._externally_initiated_completion:
|
||||||
return
|
return
|
||||||
|
if self.done: # Return if status is already done.. It must be resolved already
|
||||||
|
return
|
||||||
|
|
||||||
for st in self.all_statuses:
|
for st in self.all_statuses:
|
||||||
with st._lock:
|
with st._lock:
|
||||||
if not self.done:
|
if st.done and not st.success:
|
||||||
if st.done and not st.success:
|
self.set_exception(st.exception())
|
||||||
self.set_exception(st.exception())
|
return
|
||||||
return
|
|
||||||
|
|
||||||
if all(st.done for st in self.all_statuses) and all(
|
if all(st.done for st in self.all_statuses) and all(
|
||||||
st.success for st in self.all_statuses
|
st.success for st in self.all_statuses
|
||||||
|
|||||||
@@ -261,24 +261,25 @@ class TimepixFlyClient:
|
|||||||
callback_ids = list(self._status_callbacks.keys())
|
callback_ids = list(self._status_callbacks.keys())
|
||||||
for cb_id in callback_ids:
|
for cb_id in callback_ids:
|
||||||
dev_status, success, error = self._status_callbacks[cb_id]
|
dev_status, success, error = self._status_callbacks[cb_id]
|
||||||
if dev_status.done:
|
with dev_status._lock:
|
||||||
self._status_callbacks.pop(cb_id)
|
if dev_status.done:
|
||||||
continue
|
self._status_callbacks.pop(cb_id)
|
||||||
if status in success:
|
continue
|
||||||
dev_status.set_finished()
|
if status in success:
|
||||||
logger.info(f"Status callback finished in succes: {status.value}")
|
dev_status.set_finished()
|
||||||
self._status_callbacks.pop(cb_id)
|
logger.info(f"Status callback finished in succes: {status.value}")
|
||||||
elif status in error:
|
self._status_callbacks.pop(cb_id)
|
||||||
last_error = self.last_error()
|
elif status in error:
|
||||||
logger.error(
|
last_error = self.last_error()
|
||||||
f"Timepix status in error is {status.value}, with last error: {last_error.message}"
|
logger.error(
|
||||||
)
|
f"Timepix status in error is {status.value}, with last error: {last_error.message}"
|
||||||
dev_status.set_exception(
|
|
||||||
TimePixStatusError(
|
|
||||||
f"TimePixStatus status is '{status.value},' last error message: {last_error.message}"
|
|
||||||
)
|
)
|
||||||
)
|
dev_status.set_exception(
|
||||||
self._status_callbacks.pop(cb_id)
|
TimePixStatusError(
|
||||||
|
f"TimePixStatus status is '{status.value},' last error message: {last_error.message}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self._status_callbacks.pop(cb_id)
|
||||||
# Reset the _started flag if the status is in CONFIG.
|
# Reset the _started flag if the status is in CONFIG.
|
||||||
if status == TimePixFlyStatus.CONFIG:
|
if status == TimePixFlyStatus.CONFIG:
|
||||||
self._started = False # Should this be made thread-safe?
|
self._started = False # Should this be made thread-safe?
|
||||||
|
|||||||
Reference in New Issue
Block a user