50 void JoinJobForTesting();
59 void RescheduleJobIfNeeded(
65 void FlushMemoryChunkData();
67 void FlushPretenuringFeedback();
72 size_t TotalMarkedBytes();
75 another_ephemeron_iteration_.store(another_ephemeron_iteration);
78 return another_ephemeron_iteration_.load();
82 DCHECK(garbage_collector_.has_value());
83 return garbage_collector_.value();
86 bool IsWorkLeft()
const;
89 const size_t estimate =
90 estimate_concurrency_.exchange(0, std::memory_order_relaxed);
91 return estimate ? estimate : 1;
98 class MinorMarkingState;
101 template <YoungGenerationMarkingVisitationMode marking_mode>
105 unsigned mark_compact_epoch,
bool should_keep_ages_unchanged);
106 size_t GetMajorMaxConcurrency(
size_t worker_count);
107 size_t GetMinorMaxConcurrency(
size_t worker_count);
116 std::atomic<size_t> total_marked_bytes_{0};
117 std::atomic<bool> another_ephemeron_iteration_{
false};
120 std::atomic<size_t> estimate_concurrency_{0};