798 {
799 {
803
804
807 marker_->IterateRoots(visitor_);
808
810
811 bool more_to_mark = false;
812 do {
813 do {
816
818#if defined(DEBUG)
820
821
822
824#endif
825
826
828 if (more_to_mark) {
829
831 }
832
833
834
835
836
838 if (!more_to_mark && (num_busy_->
load() > 0)) {
839
840
842 more_to_mark = true;
843 }
845 } while (more_to_mark);
846
847
850
851
855
856
857
858 marker_->IterateWeakRoots(thread);
861 if (FLAG_log_marker_tasks) {
864 }
865 }
866 }
void AddMicros(int64_t micros)
uintptr_t marked_bytes() const
void MournWeakProperties()
void ProcessDeferredMarking()
int64_t marked_micros() const
void set_concurrent(bool value)
void MournWeakReferences()
bool ProcessPendingWeakProperties()
bool WaitForWork(RelaxedAtomic< uintptr_t > *num_busy)
static int64_t GetCurrentMonotonicMicros()
T load(std::memory_order order=std::memory_order_relaxed) const
T fetch_add(T arg, std::memory_order order=std::memory_order_relaxed)
static Thread * Current()
#define THR_Print(format,...)
#define TIMELINE_FUNCTION_GC_DURATION(thread, name)