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 |