fair-acc / gnuradio4

Prototype implementations for a more compile-time efficient flowgraph API
GNU Lesser General Public License v3.0
22 stars 8 forks source link

Core: rework Tag handling #340

Closed wirew0rm closed 3 weeks ago

wirew0rm commented 2 months ago

The automatic tag forwarding implemented in Block::workInternal was was not working for ASYNC ports since in this case the Block cannot determine a priori if samples will be consumed and consequently cannot perform an early return ahead of the unconditional tag forwarding and consumption.

This change introduces an extension of the ConsumableInputRange, which additionally takes care of consuming all tags up to the first sample of the currently processed chunk.

Also all tag merging logic is moved from Port to Block, while the logic for preparing the consumableInput or producableOutput ranges is moved into the Port.

sonarcloud[bot] commented 2 months ago

Quality Gate Failed Quality Gate failed

Failed conditions
49.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarCloud

sonarcloud[bot] commented 3 weeks ago

Quality Gate Failed Quality Gate failed

Failed conditions
30.4% Coverage on New Code (required ≥ 80%)

See analysis details on SonarCloud