diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2015-03-05 14:37:28 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2015-03-05 14:37:28 +0000 |
commit | 72f169797e7c81fb9b40f764c9d129ff43e854d6 (patch) | |
tree | 95125801f12b7be6c72c6b75627b710622f505ac /llvm/unittests/DebugInfo/DWARF/DWARFFormValueTest.cpp | |
parent | 1725997f142ba456ee374c7b87a2d07cfdc9f1a8 (diff) | |
download | bcm5719-llvm-72f169797e7c81fb9b40f764c9d129ff43e854d6.tar.gz bcm5719-llvm-72f169797e7c81fb9b40f764c9d129ff43e854d6.zip |
tsan: fix signal handling during stop-the-world
Long story short: stop-the-world briefly resets SIGSEGV handler to SIG_DFL.
This breaks programs that handle and continue after SIGSEGV (namely JVM).
See the test and comments for details.
This is reincarnation of reverted r229678 (http://reviews.llvm.org/D7722).
Changed:
- execute TracerThreadDieCallback only on tracer thread
- reset global data in TracerThreadSignalHandler/TracerThreadDieCallback
- handle EINTR from waitpid
Add 3 new test:
- SIGSEGV during leak checking
- StopTheWorld operation during signal storm from an external process
- StopTheWorld operation when the program generates and handles SIGSEGVs
http://reviews.llvm.org/D8032
llvm-svn: 231367
Diffstat (limited to 'llvm/unittests/DebugInfo/DWARF/DWARFFormValueTest.cpp')
0 files changed, 0 insertions, 0 deletions