formal data race on the interrupt flag in OpenMP builds. On POSIX the flags are volatile sig_atomic_t, written by the SIGINT handler and read by every worker thread. That is benign on real hardware but undefined under the C++ memory model, and ThreadSanitizer would flag it. A lock-free std::atomic is async-signal-safe and would also remove the Windows/POSIX split. See globalPrimitives.h:76.
formal data race on the interrupt flag in OpenMP builds. On POSIX the flags are volatile sig_atomic_t, written by the SIGINT handler and read by every worker thread. That is benign on real hardware but undefined under the C++ memory model, and ThreadSanitizer would flag it. A lock-free std::atomic is async-signal-safe and would also remove the Windows/POSIX split. See globalPrimitives.h:76.