A lot of the code in cxa_exception.cpp depends on __cxa_get_globals_fast() returning null if __cxa_get_globals() hasn't been called yet.  However it doesn't reliably do that, at least on OS X if __cxa_get_globals_fast() is called prior to pthread_key_create() running.  Our choice is to either limit our use of __cxa_get_globals_fast() more than we have, or to have __cxa_get_globals_fast() initialize with pthread_key_create() if necessary.  I chose the latter, and replaced pthread_once with a C++11 local static (which should do the same thing).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148750 91177308-0d34-0410-b5e6-96231b3b80d8
1 file changed
tree: 839d3a85f507fb9718636b4cd2faa79ed2671855
  1. include/
  2. src/
  3. test/
  4. www/
  5. CREDITS.TXT
  6. LICENSE.TXT