diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2014-01-24 12:33:35 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2014-01-24 12:33:35 +0000 |
commit | 87861adcb10068eaac6a9d75544f9011f285bbf6 (patch) | |
tree | 9e1a4f4dc2fa0dc2fe1af696f365fbbe4fa738b7 /make | |
parent | 91863c830dc9ac6d26831a0e5b9888792d8b9ddb (diff) |
tsan: do not deadlock on fork
Currently correct programs can deadlock after fork, because atomic operations and async-signal-safe calls are not async-signal-safe under tsan.
With this change:
- if a single-threaded program forks, the child continues running with verification enabled (the tsan background thread is recreated as well)
- if a multi-threaded program forks, then the child runs with verification disabled (memory accesses, atomic operations and interceptors are disabled); it's expected that it will exec soon anyway
- if the child tries to create more threads after multi-threaded fork, the program aborts with error message
- die_after_fork flag is added that allows to continue running, but all bets are off
http://llvm-reviews.chandlerc.com/D2614
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@199993 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'make')
0 files changed, 0 insertions, 0 deletions