DiamondLightSource / pythonSoftIOC

Embed an EPICS IOC in a Python process
Apache License 2.0
34 stars 9 forks source link

Ensure records do not get stuck in processing state #175

Closed AlexanderWells-diamond closed 1 month ago

AlexanderWells-diamond commented 1 month ago

If an exception occurs during an on_update callback, the "completion" function would never be called, which meant the PACT flag was never reset.

This had the end result of causing the affected record to never process again, i.e. its value could never be changed.

Also took the opportunity to add some protection to the cothread dispatcher against being passed and async function.

Fixes #170