diff options
author | Mathieu Chartier <mathieuc@google.com> | 2015-03-03 13:51:04 -0800 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2015-03-03 16:31:49 -0800 |
commit | 91e56692c6bd9fa1d41951ee7dc311f19461f4be (patch) | |
tree | 8e7600204eed1509b7ec436ae789f3d8195a8755 /compiler/optimizing/builder.cc | |
parent | dc47e986941b1a3754447fabea272485f3f0f382 (diff) | |
download | android_art-91e56692c6bd9fa1d41951ee7dc311f19461f4be.tar.gz android_art-91e56692c6bd9fa1d41951ee7dc311f19461f4be.tar.bz2 android_art-91e56692c6bd9fa1d41951ee7dc311f19461f4be.zip |
Wait for threads to finish unregistering
There was a race where Thread::join would return before the thread was
unregistered. This caused a problem with Daemons.stop since the thread
list could get deleted before the daemon thread was removed from list_.
This caused occasional "Request to unregister unattached thread"
errors and warnings.
The fix is to wait until threads finish registering before destroying
the thread list. The only threads which can be unregistering at this
point are the daemons we stopped earlier during the runtime shutdown
process. The issue is that thread join finishes before we remove the
thread from the thread list.
Also some cleanup.
Bug: 18713034
Change-Id: I8921122fe8462643a6b814b5f00632481e3831fb
Diffstat (limited to 'compiler/optimizing/builder.cc')
0 files changed, 0 insertions, 0 deletions