You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The backport of `std::atomic_flag` from #2431 was prone to a deadlock in the `wait` method. This was discovered by our Clang 17 debug-with-thread-sanitizer build, which failed or all recent commits because it was cancelled after six hours. The reason for the deadlock was an overly optimistic use of an `std::atomic<bool>` flag. This is now fixed by synchronizing access to that flag via a mutex.
NOTE: In principle, this makes the implementation of the `atomic_flag` class slightly less efficient in C++17 mode. However, we only use that class for synchronizing relatively large batches of computation, so that we don't expect any significant performance degradation anywhere.
0 commit comments