Marshall Clow wrote:
Hi,
The master branch is now open for bug fixes, test and documentation changes, but please follow the policy described in:
https://github.com/boostorg/wiki/wiki/Releases%3A-Beta-Merge-Policy
I'd like to apply the following fix https://github.com/boostorg/smart_ptr/compare/master..develop This partially undoes a change that I made for this release, namely, removal of all platform-specific atomic implementations and their replacement with use of <atomic>. It turns out that this causes problems on some Clang configurations (so far we've identified Clang 3.5 and 3.6 on Linux, and clang-cl 9 on Windows, but others may exist), where ATOMIC_FLAG_INIT does not actually work for initializing a std::atomic_flag, even though it's supposed to. So the change above undeletes one removed header, containing the implementation that was used on Clang, and goes through it again. The diff alone may give the impression that this is a high risk change, but it essentially restores the 1.89 behavior on Clang, so it shouldn't be.