fix: add timeout to MCS card status checks to prevent deadlock
CI for csaxs_bec / test (push) Successful in 1m34s
CI for csaxs_bec / test (push) Successful in 1m34s
This commit is contained in:
@@ -383,14 +383,14 @@ class DDG1(PSIDeviceBase, DelayGeneratorCSAXS):
|
||||
|
||||
# NOTE First we wait that the MCS card is not acquiring. We add here a timeout of 5s to avoid
|
||||
# a deadlock in case the MCS card is stuck for some reason. This should not happen normally.
|
||||
status = CompareStatus(mcs.acquiring, ACQUIRING.DONE)
|
||||
status = CompareStatus(mcs.acquiring, ACQUIRING.DONE, timeout=5)
|
||||
self.cancel_on_stop(status)
|
||||
status.wait(timeout=5)
|
||||
status.wait()
|
||||
|
||||
# NOTE Clear the '_omit_mca_callbacks' flag. This makes sure that data received from the mca1...mca3
|
||||
# counters are forwarded to BEC. Once the flag is set, we create a TransitionStatus DONE->ACQUIRING
|
||||
# and start the acquisition through erase_start.put(1). Finally, we wait for the card to go to ACQUIRING state.
|
||||
status_acquiring = CompareStatus(mcs.acquiring, ACQUIRING.ACQUIRING)
|
||||
status_acquiring = CompareStatus(mcs.acquiring, ACQUIRING.ACQUIRING, timeout=5)
|
||||
with suppress_mca_callbacks(mcs):
|
||||
mcs.erase_start.put(1)
|
||||
mcs._omit_mca_callbacks.clear() # pylint: disable=protected-access
|
||||
@@ -614,7 +614,7 @@ class DDG1(PSIDeviceBase, DelayGeneratorCSAXS):
|
||||
# )
|
||||
if not status_mcs.done:
|
||||
mcs.acquiring.get(use_monitor=False)
|
||||
status_mcs.wait(timeout=3)
|
||||
status_mcs.wait()
|
||||
except Exception as exc:
|
||||
if (
|
||||
mcs.acquiring.get(use_monitor=False) != ACQUIRING.ACQUIRING
|
||||
@@ -625,7 +625,7 @@ class DDG1(PSIDeviceBase, DelayGeneratorCSAXS):
|
||||
raise exc
|
||||
# mcs.erase_start.put(1)
|
||||
# status_mcs.wait(timeout=3)
|
||||
status = CompareStatus(mcs.acquiring, ACQUIRING.DONE)
|
||||
status = CompareStatus(mcs.acquiring, ACQUIRING.DONE, timeout=5)
|
||||
logger.info(f"Finished preparing mcs card {time.time()-start_time}")
|
||||
|
||||
# Send trigger
|
||||
|
||||
Reference in New Issue
Block a user