[vm] Grab read program lock when querying Class functions.
Fixes https://github.com/dart-lang/sdk/issues/61734 TEST=tsan ci Change-Id: Id0c905109ad88f9a0e4abc302b7ad90b8239a86a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/457140 Commit-Queue: Alexander Aprelev <aam@google.com> Reviewed-by: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
committed by
Commit Queue
parent
542a11bf3b
commit
2532cf395a
@@ -2013,6 +2013,7 @@ bool FlowGraphCompiler::LookupMethodFor(int class_id,
|
||||
Class& cls = Class::Handle(zone, raw_class);
|
||||
if (cls.IsNull()) return false;
|
||||
if (!cls.is_finalized()) return false;
|
||||
SafepointReadRwLocker ml(thread, thread->isolate_group()->program_lock());
|
||||
if (Array::Handle(cls.current_functions()).IsNull()) return false;
|
||||
|
||||
if (class_is_abstract_return != nullptr) {
|
||||
|
||||
Reference in New Issue
Block a user