summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorLokesh Gidra <lokeshgidra@google.com>2019-12-05 11:03:34 -0800
committerLokesh Gidra <lokeshgidra@google.com>2019-12-05 11:41:39 -0800
commit726e2dd6db60968b36c1d03feab236edc8fa806b (patch)
tree78b379652ed945f44051856a27e1597b6c7a65db /compiler/optimizing/graph_visualizer.cc
parente3f775bace85f4fe02dfd4042091d2f7d6fcbc25 (diff)
Read thread-local mark-stack inside critical section
Reading thread-local mark-stack outside mark_stack_lock_'s critical section (CS) and then adding it to pooled_mark_stacks_ vector in the CS leads to concurrency issue. A destroying mutator reads its mark-stack and then waits on mark_stack_lock_ as concurrently running GC-thread revokes the mutator's mark-stack. Eventually, when mutator resumes, it adds the same mark-stack again to the pooled_mark_stacks_ vector. Therefore, reading the thread-local mark-stack should also be performed inside the mark_stack_lock_'s CS. Test: art/test/testrunner/testrunner.py Bug: 140119552 Change-Id: I1daf7131e380699cd6bfcc8bfe2f2db52b661bd6
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions