The m_timestamp_estimator pointer was reset (calling TimestampEstimator's dtor) before joining the threads at stop, so threads could dereference a nullptr
The case where the wait for a valid timestamp at the start of send_trigger_decisions was interrupted by stop was not handled correctly. We should just return there, not carry on as if a valid timestamp was available
To reproduce the problem, create a two-process minidaqapp config, run just the trigemu process, and send it "init", "conf", "start", "stop". Eg:
There were two separate problems:
To reproduce the problem, create a two-process minidaqapp config, run just the trigemu process, and send it "init", "conf", "start", "stop". Eg:
Without this PR, I get a segfault