Skip to content

Skip monitoring update iteration when the masks cannot be updated

Laurent Petre requested to merge bugfix/monitoring-update into develop

Description

It was noticed that an exception escaping the timeExpired callback function would cancel the re-scheduling of a fixed rate timer. This caused the monitoring to stop until a restart of the xDAQ application when the front-end masks couldn't be updated due to the back-end firmware being reloaded. The issue is fixed by ensuring that all exceptions are caught in the callback function.

No exception can exit a timeExpired callback function if one wants it
to be rescheduled. Therefore when the frontend masks cannot be updated,
the iteration is skipped. All exceptions in the AMCManager::timeExpired
function are now caught and acted upon.

Related Issue

How Has This Been Tested?

Works on the GE1/1 integration setup. Will be tested at p5 once merged.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Merge request reports