96 97 // Workers 98 uint nconcurrent_worker_threads() const; 99 uint nconcurrent_no_boost_worker_threads() const; 100 void set_boost_worker_threads(bool boost); 101 void worker_threads_do(ThreadClosure* tc) const; 102 void print_worker_threads_on(outputStream* st) const; 103 104 // Reference processing 105 ReferenceDiscoverer* reference_discoverer(); 106 void set_soft_reference_policy(bool clear); 107 108 // Non-strong reference processing 109 void process_non_strong_references(); 110 111 // Page allocation 112 ZPage* alloc_page(uint8_t type, size_t size, ZAllocationFlags flags); 113 void undo_alloc_page(ZPage* page); 114 void free_page(ZPage* page, bool reclaimed); 115 116 // Uncommit memory 117 void uncommit_run(); 118 void uncommit_stop(); 119 120 // Object allocation 121 uintptr_t alloc_tlab(size_t size); 122 uintptr_t alloc_object(size_t size); 123 uintptr_t alloc_object_for_relocation(size_t size); 124 void undo_alloc_object_for_relocation(uintptr_t addr, size_t size); 125 bool is_alloc_stalled() const; 126 void check_out_of_memory(); 127 128 // Marking 129 bool is_object_live(uintptr_t addr) const; 130 bool is_object_strongly_live(uintptr_t addr) const; 131 template <bool follow, bool finalizable, bool publish> void mark_object(uintptr_t addr); 132 void mark_start(); 133 void mark(bool initial); 134 void mark_flush_and_free(Thread* thread); 135 bool mark_end(); | 96 97 // Workers 98 uint nconcurrent_worker_threads() const; 99 uint nconcurrent_no_boost_worker_threads() const; 100 void set_boost_worker_threads(bool boost); 101 void worker_threads_do(ThreadClosure* tc) const; 102 void print_worker_threads_on(outputStream* st) const; 103 104 // Reference processing 105 ReferenceDiscoverer* reference_discoverer(); 106 void set_soft_reference_policy(bool clear); 107 108 // Non-strong reference processing 109 void process_non_strong_references(); 110 111 // Page allocation 112 ZPage* alloc_page(uint8_t type, size_t size, ZAllocationFlags flags); 113 void undo_alloc_page(ZPage* page); 114 void free_page(ZPage* page, bool reclaimed); 115 116 // Unmap memory 117 void unmap_run(); 118 void unmap_stop(); 119 120 // Uncommit memory 121 void uncommit_run(); 122 void uncommit_stop(); 123 124 // Object allocation 125 uintptr_t alloc_tlab(size_t size); 126 uintptr_t alloc_object(size_t size); 127 uintptr_t alloc_object_for_relocation(size_t size); 128 void undo_alloc_object_for_relocation(uintptr_t addr, size_t size); 129 bool is_alloc_stalled() const; 130 void check_out_of_memory(); 131 132 // Marking 133 bool is_object_live(uintptr_t addr) const; 134 bool is_object_strongly_live(uintptr_t addr) const; 135 template <bool follow, bool finalizable, bool publish> void mark_object(uintptr_t addr); 136 void mark_start(); 137 void mark(bool initial); 138 void mark_flush_and_free(Thread* thread); 139 bool mark_end(); |