This patch adds a wrapper for call_once, which uses an already-compiled helper __call_once with an atomic release which is invisible to TSan. To avoid false positives, the interceptor performs an explicit atomic release in the callback wrapper.
The test passes only after a real race in libc++ is fixed, patch at https://reviews.llvm.org/D24028.
This does not have a call to SCOPED_TSAN_INTERCEPTOR. Does it need it?