summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2018-05-10 04:02:59 +0000
committerVitaly Buka <vitalybuka@google.com>2018-05-10 04:02:59 +0000
commite0c6eadef780de6328fcc36f2fa31863c4ec2403 (patch)
tree4f71de125c559bf3e3c0f10ff0f50a324444ed54 /llvm/docs
parent1d4c29c437d6d22e6934053bfd59468b501d04af (diff)
downloadbcm5719-llvm-e0c6eadef780de6328fcc36f2fa31863c4ec2403.tar.gz
bcm5719-llvm-e0c6eadef780de6328fcc36f2fa31863c4ec2403.zip
[sanitizer] Don't miss threads by ThreadSuspender
Summary: Enumerating /proc/<pid>/task/ dir Linux may stop if thread is dead. In this case we miss some alive threads and can report false memory leaks. To solve this issue we repeat enumeration if the last thread is dead. Do detect dead threads same way as proc_task_readdir we use /proc/<pid>/task/<tid>/status. Similarly it also ends enumeration of if proc_fill_cache fails, but in this case Linux sets inode to 1 (Bad block). And just in case re-list threads if we had to call internal_getdents more than twice or result takes more than half of the buffer. Reviewers: eugenis, dvyukov, glider Subscribers: llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D46517 llvm-svn: 331953
Diffstat (limited to 'llvm/docs')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud