[PATCH] Removing the static initializer in ManagedStatic.cpp by using llvm_call_once to initialize the ManagedStatic mutex.

Chris Bieneman beanz at apple.com
Wed Oct 22 16:59:11 PDT 2014


Hi chandlerc, rnk, aaron.ballman, chapuni,

This patch adds an llvm_call_once which is a wrapper around std::call_once on platforms where it is available and devoid of bugs. The patch also migrates the ManagedStatic mutex to be allocated using llvm_call_once.

These changes are philosophically equivalent to the changes added in r219638, which were reverted due to a hang on Win32 which was the result of a bug in the Windows implementation of std::call_once.

http://reviews.llvm.org/D5922

Files:
  include/llvm/Support/Threading.h
  lib/Support/ManagedStatic.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5922.15285.patch
Type: text/x-patch
Size: 3625 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141022/82298f29/attachment.bin>


More information about the llvm-commits mailing list