src/hotspot/share/gc/g1/g1RootProcessor.hpp
changeset 49911 358be4680d12
parent 47885 5caa1d5f74c1
child 50445 bd6b78feb6a3
equal deleted inserted replaced
49910:c822dd1a3b66 49911:358be4680d12
     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);