diff --git a/receiver/JFJochReceiverService.cpp b/receiver/JFJochReceiverService.cpp index bac0c12dd..d3eb2cdea 100644 --- a/receiver/JFJochReceiverService.cpp +++ b/receiver/JFJochReceiverService.cpp @@ -193,6 +193,7 @@ void JFJochReceiverService::Start(const DiffractionExperiment &experiment, measurement = std::async(std::launch::async, &JFJochReceiverService::FinalizeMeasurement, this); state = ReceiverState::Running; } catch (const std::exception &e) { + receiver.reset(); // its threads may be polling the puller reset below // The receiver never started, so drop the status its base constructor had already reset - // otherwise /status and /statistics keep reporting a zero-progress run that never happened, // until the next start overwrites it.