src/hotspot/share/gc/z/zDriver.hpp
changeset 53541 4e325f8b50ce
parent 50525 767cdb97f103
child 54163 790679f86a51
equal deleted inserted replaced
53540:9f75dc382445 53541:4e325f8b50ce
     1 /*
     1 /*
     2  * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2015, 2019, 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.
    26 
    26 
    27 #include "gc/shared/concurrentGCThread.hpp"
    27 #include "gc/shared/concurrentGCThread.hpp"
    28 #include "gc/shared/gcCause.hpp"
    28 #include "gc/shared/gcCause.hpp"
    29 #include "gc/z/zMessagePort.hpp"
    29 #include "gc/z/zMessagePort.hpp"
    30 
    30 
    31 class ZOperationClosure;
    31 class VM_ZOperation;
    32 
    32 
    33 class ZDriver : public ConcurrentGCThread {
    33 class ZDriver : public ConcurrentGCThread {
    34 private:
    34 private:
    35   ZMessagePort<GCCause::Cause> _gc_cycle_port;
    35   ZMessagePort<GCCause::Cause> _gc_cycle_port;
    36   ZRendezvousPort              _gc_locker_port;
    36   ZRendezvousPort              _gc_locker_port;
    37 
    37 
    38   bool vm_operation(ZOperationClosure* cl);
    38   template <typename T> bool pause();
    39 
    39 
    40   GCCause::Cause start_gc_cycle();
    40   void pause_mark_start();
    41   void run_gc_cycle(GCCause::Cause cause);
    41   void concurrent_mark();
    42   void end_gc_cycle();
    42   bool pause_mark_end();
       
    43   void concurrent_mark_continue();
       
    44   void concurrent_process_non_strong_references();
       
    45   void concurrent_reset_relocation_set();
       
    46   void concurrent_destroy_detached_pages();
       
    47   void pause_verify();
       
    48   void concurrent_select_relocation_set();
       
    49   void concurrent_prepare_relocation_set();
       
    50   void pause_relocate_start();
       
    51   void concurrent_relocate();
       
    52 
       
    53   void check_out_of_memory();
       
    54 
       
    55   void gc(GCCause::Cause cause);
    43 
    56 
    44 protected:
    57 protected:
    45   virtual void run_service();
    58   virtual void run_service();
    46   virtual void stop_service();
    59   virtual void stop_service();
    47 
    60