dart-sdk/runtime/vm/heap
Martin Kustermann 6717bfe423 [vm/concurrency] Lock weak table to prepare for concurrent access.
Right now there is only one mutator working on a heap and it can
therefore access the heap's weak maps without locking. The GC is the
only other user of the weak maps and it accesses it within a safepoint
operation scope.

Once we move the heap to the isolate group there can be concurrent
accesses to the weak maps. As a preparation step this CL adds locking
around the non-GC API.

Issue https://github.com/dart-lang/sdk/issues/36097

Change-Id: I84acce24612b12a7393154cab816f0eff9c7589a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116201
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-09-10 14:33:46 +00:00
..
become.cc [nit] Adds missing newlines to error prints. 2019-09-05 12:56:49 +00:00
become.h
compactor.cc [vm] Fix missing null check in FLAG_force_evacuation. 2019-08-09 20:51:41 +00:00
compactor.h Revert "Reland "Temporary revert of two changes which potentially caused performance regressions in Flutter."" 2019-04-03 12:50:57 +00:00
freelist.cc [vm] Eliminate Mutex/Monitor indirection where possible 2019-05-13 21:17:51 +00:00
freelist.h [vm] Eliminate Mutex/Monitor indirection where possible 2019-05-13 21:17:51 +00:00
freelist_test.cc [gardening] Migrate most files to be implicit-bool-conversion free 2019-09-05 21:41:42 +00:00
heap.cc [vm/concurrency] Lock weak table to prepare for concurrent access. 2019-09-10 14:33:46 +00:00
heap.h [vm/ffi] regression test for 37511 2019-08-21 08:10:34 +00:00
heap_sources.gni
heap_test.cc [vm/concurrency] Move all information except for the class pointers out of [ClassTable] into [SharedClassTable] 2019-09-10 12:48:16 +00:00
marker.cc [vm/concurrency] Lock weak table to prepare for concurrent access. 2019-09-10 14:33:46 +00:00
marker.h [vm] Remove code collection. 2019-04-18 20:12:09 +00:00
pages.cc [vm/concurrency] Move all information except for the class pointers out of [ClassTable] into [SharedClassTable] 2019-09-10 12:48:16 +00:00
pages.h [vm, gc] Add timeline event for growth policy updates. 2019-08-27 18:46:23 +00:00
pages_test.cc
pointer_block.cc [vm] Eliminate Mutex/Monitor indirection where possible 2019-05-13 21:17:51 +00:00
pointer_block.h [vm] Eliminate Mutex/Monitor indirection where possible 2019-05-13 21:17:51 +00:00
safepoint.cc [vm, gc] Fix racy access to the growth policy in ForceGrowthSafepointOperationScope. 2019-08-28 01:38:53 +00:00
safepoint.h [vm, gc] Check if we should start concurrent marking after external allocations and background code finalization. 2019-08-02 22:08:59 +00:00
scavenger.cc [vm/concurrency] Lock weak table to prepare for concurrent access. 2019-09-10 14:33:46 +00:00
scavenger.h
scavenger_test.cc
spaces.h [gardening] Migrate most files to be implicit-bool-conversion free 2019-09-05 21:41:42 +00:00
sweeper.cc [VM/runtime] Add some asserts and remove reference to String::MakeExternal 2019-08-30 23:29:09 +00:00
sweeper.h
verifier.cc Reland "Reland "[VM runtime] Dual mapping of executable pages."" 2019-03-12 20:45:45 +00:00
verifier.h
weak_code.cc
weak_code.h
weak_table.cc [vm/concurrency] Lock weak table to prepare for concurrent access. 2019-09-10 14:33:46 +00:00
weak_table.h [vm/concurrency] Lock weak table to prepare for concurrent access. 2019-09-10 14:33:46 +00:00