diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-10-16 09:05:13 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-10-16 09:05:13 +0000 |
commit | bca624ab039ed690b50b5ae222eb60790fb27c91 (patch) | |
tree | 25eef620329a0c270dcc8cfdca7f4daa7693aa81 /llvm/lib/Analysis/MustExecute.cpp | |
parent | 96f248955785ecd7cc5b5b92e7548eb84c0bdf1c (diff) | |
download | bcm5719-llvm-bca624ab039ed690b50b5ae222eb60790fb27c91.tar.gz bcm5719-llvm-bca624ab039ed690b50b5ae222eb60790fb27c91.zip |
[clangd] Fix threading bugs in (not-yet-used) BackgroundIndex, re-enable test.
Summary:
One relatively boring bug: forgot to notify the CV after enqueue.
One much more fun bug: the thread member could access instance variables before
they were initialized. Although the thread was last in the init list, QueueCV
etc were listed after Thread in the class, so their default constructors raced
with the thread itself.
We have to get very unlucky to lose this race, I saw it 0.02% of the time.
Reviewers: ioeric
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jfb, cfe-commits
Differential Revision: https://reviews.llvm.org/D53313
llvm-svn: 344595
Diffstat (limited to 'llvm/lib/Analysis/MustExecute.cpp')
0 files changed, 0 insertions, 0 deletions