923 {
924 {
928
929
932 marker_->IterateRoots(visitor_);
934
936
937 bool more_to_mark = false;
938 do {
939 do {
942
944#if defined(DEBUG)
946
947
948
950#endif
951
952
954 if (more_to_mark) {
955
957 }
958
959
960
961
962
964 if (!more_to_mark && (num_busy_->
load() > 0)) {
965
966
968 more_to_mark = true;
969 }
971 } while (more_to_mark);
972
973
976
977
981
982
983
984 thread->ReleaseStoreBuffer();
986 marker_->IterateWeakRoots(thread);
989 if (FLAG_log_marker_tasks) {
992 }
993 }
994 }
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)