Skip to content

Drop parallel client Notification feature

With the current concept, movement of CircularBufferWindows is done by one pushing thread, for all buffers which share the same notification_group.

This is a race condition, since only the pushing thread of a concrete buffer should be allowed to move related CircularWindowIterators for that buffer.

Since the feature to subscribe to multiple channels at once anyhow is not going to be supported by FESA client software, and it causes more trouble than gain, let's just drop the feature and simplify the code accordingly:

  • Remove class DataReadyHandler
  • Remove class DataReadyManager
  • Don't pass vectors to DataReadyQueue anymore
  • The CircularBufferManager should hold a reference to a DataReadyQueue and notifiy clients after window-movement
  • The streaming window time-management, currently done inside DataReadyHandlerStreaming::requestMoveWindow should be moved to the CircularBufferManager