< prev index next >
src/share/vm/gc/g1/g1RootProcessor.hpp
Print this page
rev 11874 : 8114823: G1 doesn't honor request to disable class unloading
Reviewed-by:
@@ -79,10 +79,18 @@
void process_vm_roots(G1RootClosures* closures,
G1GCPhaseTimes* phase_times,
uint worker_i);
+ void process_string_table_roots(G1RootClosures* closures,
+ G1GCPhaseTimes* phase_times,
+ uint worker_i);
+
+ void process_code_cache_roots(CodeBlobClosure* code_closure,
+ G1GCPhaseTimes* phase_times,
+ uint worker_i);
+
public:
G1RootProcessor(G1CollectedHeap* g1h, uint n_workers);
// Apply closures to the strongly and weakly reachable roots in the system
// in a single pass.
@@ -97,10 +105,17 @@
// Apply oops, clds and blobs to strongly and weakly reachable roots in the system
void process_all_roots(OopClosure* oops,
CLDClosure* clds,
CodeBlobClosure* blobs);
+ // Apply oops, clds and blobs to strongly and weakly reachable roots in the system,
+ // the only thing different from process_all_roots is that we skip the string table
+ // to avoid keeping every string live when doing class unloading.
+ void process_all_roots_no_string_table(OopClosure* oops,
+ CLDClosure* clds,
+ CodeBlobClosure* blobs);
+
// Number of worker threads used by the root processor.
uint n_workers() const;
};
#endif // SHARE_VM_GC_G1_G1ROOTPROCESSOR_HPP
< prev index next >