| // Copyright 2020 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #include "src/heap/cppgc/marking-state.h" |
| void MutatorMarkingState::FlushNotFullyConstructedObjects() { |
| std::unordered_set<HeapObjectHeader*> objects = |
| not_fully_constructed_worklist_.Extract<AccessMode::kAtomic>(); |
| for (HeapObjectHeader* object : objects) { |
| previously_not_fully_constructed_worklist_.Push(object); |
| void MutatorMarkingState::FlushDiscoveredEphemeronPairs() { |
| discovered_ephemeron_pairs_worklist_.Publish(); |
| if (!discovered_ephemeron_pairs_worklist_.IsGlobalEmpty()) { |
| ephemeron_pairs_for_processing_worklist_.Merge( |
| &discovered_ephemeron_pairs_worklist_); |