equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
32 class CLDClosure; |
32 class CLDClosure; |
33 class CodeBlobClosure; |
33 class CodeBlobClosure; |
34 class G1CollectedHeap; |
34 class G1CollectedHeap; |
35 class G1EvacuationRootClosures; |
35 class G1EvacuationRootClosures; |
36 class G1GCPhaseTimes; |
36 class G1GCPhaseTimes; |
|
37 class G1ParScanThreadState; |
37 class G1RootClosures; |
38 class G1RootClosures; |
38 class Monitor; |
39 class Monitor; |
39 class OopClosure; |
40 class OopClosure; |
40 class SubTasksDone; |
41 class SubTasksDone; |
41 |
42 |
95 uint worker_i); |
96 uint worker_i); |
96 |
97 |
97 public: |
98 public: |
98 G1RootProcessor(G1CollectedHeap* g1h, uint n_workers); |
99 G1RootProcessor(G1CollectedHeap* g1h, uint n_workers); |
99 |
100 |
100 // Apply closures to the strongly and weakly reachable roots in the system |
101 // Apply correct closures from pss to the strongly and weakly reachable roots in the system |
101 // in a single pass. |
102 // in a single pass. |
102 // Record and report timing measurements for sub phases using the worker_i |
103 // Record and report timing measurements for sub phases using the worker_i |
103 void evacuate_roots(G1EvacuationRootClosures* closures, uint worker_i); |
104 void evacuate_roots(G1ParScanThreadState* pss, uint worker_id); |
104 |
105 |
105 // Apply oops, clds and blobs to all strongly reachable roots in the system |
106 // Apply oops, clds and blobs to all strongly reachable roots in the system |
106 void process_strong_roots(OopClosure* oops, |
107 void process_strong_roots(OopClosure* oops, |
107 CLDClosure* clds, |
108 CLDClosure* clds, |
108 CodeBlobClosure* blobs); |
109 CodeBlobClosure* blobs); |