b9d77e63ddd998bcf58799eeed91655cddd117e2
ProcessStartMessage caught JFJochException only, the same narrow catch ProcessPreflight had. Everything that makes a failed START reportable sits inside that handler - the Error state, err, and the fatal ACK - so an exception of any other type skipped all three and left the broker blocked on an ACK that never came, with the detector about to be armed. It reads that silence as a dead writer and reports a timeout instead of the reason, and the writer is left out of the Error state it should have entered. Not every thrower on this path is ours: std::filesystem::exists throws filesystem_error when the output path cannot be walked at all (a directory component with no search permission, a symlink loop), and SetupFinalizedFileSocket throws ZeroMQ's own type. Now catches std::exception. Logger::ErrorException already takes std::exception, so the handler body is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016L1qig74oYQzfUJJZbbxFh
Jungfraujoch
Application to receive data from the PSI JUNGFRAU and EIGER detectors.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
75.4%
HTML
7.5%
C
6%
TypeScript
4.2%
Cuda
2.2%
Other
4.6%