tsan: refactor atexit handling
The current handling (manual execution of atexit callbacks)
is overly complex and leads to constant problems due to mutual ordering of callbacks.
Instead simply wrap callbacks into our wrapper to establish
the necessary synchronization.
Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=80



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@219675 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] Add fast_unwind_on_check flag.

Allows to specify the unwinder to use for CHECK failures. Previous behaviour
was to use the "fatal" unwinder.
As compiler-rt is built without frame pointers, only the slow unwinder
really makes sense here, and it is the default.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@219677 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: remove trailing whitespace



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@219678 91177308-0d34-0410-b5e6-96231b3b80d8