concurrent root iterator v2 concurrent root iterator
90
91 void work_without_timeout(ZMarkCache* cache,
92 ZMarkStripe* stripe,
93 ZMarkThreadLocalStacks* stacks);
94 void work_with_timeout(ZMarkCache* cache,
95 ZMarkStripe* stripe,
96 ZMarkThreadLocalStacks* stacks,
97 uint64_t timeout_in_millis);
98 void work(uint64_t timeout_in_millis);
99
100 void verify_all_stacks_empty() const;
101
102 public:
103 ZMark(ZWorkers* workers, ZPageTable* pagetable);
104
105 bool is_initialized() const;
106
107 template <bool finalizable, bool publish> void mark_object(uintptr_t addr);
108
109 void start();
110 void mark();
111 bool end();
112
113 void flush_and_free();
114 bool flush_and_free(Thread* thread);
115 };
116
117 #endif // SHARE_GC_Z_ZMARK_HPP
|
90
91 void work_without_timeout(ZMarkCache* cache,
92 ZMarkStripe* stripe,
93 ZMarkThreadLocalStacks* stacks);
94 void work_with_timeout(ZMarkCache* cache,
95 ZMarkStripe* stripe,
96 ZMarkThreadLocalStacks* stacks,
97 uint64_t timeout_in_millis);
98 void work(uint64_t timeout_in_millis);
99
100 void verify_all_stacks_empty() const;
101
102 public:
103 ZMark(ZWorkers* workers, ZPageTable* pagetable);
104
105 bool is_initialized() const;
106
107 template <bool finalizable, bool publish> void mark_object(uintptr_t addr);
108
109 void start();
110 void mark(bool initial);
111 bool end();
112
113 void flush_and_free();
114 bool flush_and_free(Thread* thread);
115 };
116
117 #endif // SHARE_GC_Z_ZMARK_HPP
|