light-scattering-io / caqtus

Package that provides tools to control an experiment
MIT License
0 stars 0 forks source link

Deadlock when an error occurs during shot preparation #28

Closed light-scattering-io closed 1 month ago

light-scattering-io commented 2 months ago

Describe the bug

During preparation for a shot, an error can occur after one triggerable device started waiting for its trigger, but before the root sequencer started its pulse sequence.

In this case, the triggerable device waits forever for a trigger that never comes because the root sequencer never started.

If no timeout is implemented for the triggerable device, the wait will never be cancelled and the sequence hangs there.

This is especially the case when other devices are other sequencers that don't support a timeout by default.

Expected behavior

If an error occurs in such situation, the device waiting for the trigger should have its wait cancelled or timed out such that the error can freely propagate.