tsan: restructure signal handling to allow recursive handling
Fixes issue
https://code.google.com/p/thread-sanitizer/issues/detail?id=71



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@216903 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: disable getpwent interceptors

There interceptors do not seem to be strictly necessary for tsan.
But we see cases where the interceptors consume 70% of execution time.
Memory blocks passed to fgetgrent_r are "written to" by tsan several times.
First, there is some recursion (getgrnam_r calls fgetgrent_r), and each
function "writes to" the buffer. Then, the same memory is "written to"
twice, first as buf and then as pwbufp (both of them refer to the same addresses).




git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@216904 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: more precise handling of atexit callbacks
Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=74



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