< prev index next >
src/share/vm/gc/g1/g1RootProcessor.hpp
Print this page
rev 11972 : 8114823: G1 doesn't honor request to disable class unloading
Reviewed-by:
rev 11973 : [mq]: 8114823-disable-cls-new-process-tschatzl-rev1
@@ -71,18 +71,31 @@
};
void worker_has_discovered_all_strong_classes();
void wait_until_all_strong_classes_discovered();
+ void process_all_roots(OopClosure* oops,
+ CLDClosure* clds,
+ CodeBlobClosure* blobs,
+ bool process_string_table);
+
void process_java_roots(G1RootClosures* closures,
G1GCPhaseTimes* phase_times,
uint worker_i);
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 +110,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 >