src/hotspot/share/gc/g1/g1RootProcessor.hpp
changeset 58777 18c246ad2ff9
parent 58264 4e96939a5746
equal deleted inserted replaced
58776:ea153023d832 58777:18c246ad2ff9
    48 class G1RootProcessor : public StackObj {
    48 class G1RootProcessor : public StackObj {
    49   G1CollectedHeap* _g1h;
    49   G1CollectedHeap* _g1h;
    50   SubTasksDone _process_strong_tasks;
    50   SubTasksDone _process_strong_tasks;
    51   StrongRootsScope _srs;
    51   StrongRootsScope _srs;
    52 
    52 
    53   // Used to implement the Thread work barrier.
       
    54   Monitor _lock;
       
    55   volatile jint _n_workers_discovered_strong_classes;
       
    56 
       
    57   enum G1H_process_roots_tasks {
    53   enum G1H_process_roots_tasks {
    58     G1RP_PS_Universe_oops_do,
    54     G1RP_PS_Universe_oops_do,
    59     G1RP_PS_JNIHandles_oops_do,
    55     G1RP_PS_JNIHandles_oops_do,
    60     G1RP_PS_ObjectSynchronizer_oops_do,
    56     G1RP_PS_ObjectSynchronizer_oops_do,
    61     G1RP_PS_Management_oops_do,
    57     G1RP_PS_Management_oops_do,
    67     G1RP_PS_refProcessor_oops_do,
    63     G1RP_PS_refProcessor_oops_do,
    68     // Leave this one last.
    64     // Leave this one last.
    69     G1RP_PS_NumElements
    65     G1RP_PS_NumElements
    70   };
    66   };
    71 
    67 
    72   void worker_has_discovered_all_strong_nmethods();
       
    73   void wait_until_all_strong_nmethods_discovered();
       
    74 
       
    75   void process_java_roots(G1RootClosures* closures,
    68   void process_java_roots(G1RootClosures* closures,
    76                           G1GCPhaseTimes* phase_times,
    69                           G1GCPhaseTimes* phase_times,
    77                           uint worker_id,
    70                           uint worker_id);
    78                           bool notify_claimed_nmethods_done = false);
       
    79 
    71 
    80   void process_vm_roots(G1RootClosures* closures,
    72   void process_vm_roots(G1RootClosures* closures,
    81                         G1GCPhaseTimes* phase_times,
    73                         G1GCPhaseTimes* phase_times,
    82                         uint worker_id);
    74                         uint worker_id);
    83 
    75