mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-10-15 20:21:49 +00:00
If the multi-channel fixture setup fails on thread 0 (no CUDA device, or out of device memory at high channel counts), thread 0 skips and returns before the timed loop. Google Benchmark then releases the other threads from the start barrier, and they call compute_grid() on engines that were never created, which crashes the whole benchmark binary. Add a ready flag that setup() sets only on success. Every thread checks it at the top of the timed loop, which is the first point where threads 1..N-1 can see the outcome of the setup, and skips the run instead. Also add the missing <string> include for the fixture's error member.