< prev index next >

src/share/vm/gc/shared/referenceProcessor.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 25,34 **** --- 25,35 ---- #ifndef SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_HPP #define SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_HPP #include "gc/shared/gcTrace.hpp" #include "gc/shared/referencePolicy.hpp" + #include "gc/shared/referenceProcessorPhaseTimes.hpp" #include "gc/shared/referenceProcessorStats.hpp" #include "memory/referenceType.hpp" #include "oops/instanceRefKlass.hpp" class GCTimer;
*** 218,227 **** --- 219,230 ---- DiscoveredList* _discoveredSoftRefs; DiscoveredList* _discoveredWeakRefs; DiscoveredList* _discoveredFinalRefs; DiscoveredList* _discoveredPhantomRefs; + ReferenceProcessorPhaseTimes* _phase_times; + public: static int number_of_subclasses_of_ref() { return (REF_PHANTOM - REF_OTHER); } uint num_q() { return _num_q; } uint max_num_q() { return _max_num_q; }
*** 241,251 **** ReferencePolicy* policy, bool clear_referent, BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, ! AbstractRefProcTaskExecutor* task_executor); void process_phaseJNI(BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc); --- 244,255 ---- ReferencePolicy* policy, bool clear_referent, BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, ! AbstractRefProcTaskExecutor* task_executor, ! GCTimer* gc_timer); void process_phaseJNI(BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc);
*** 309,319 **** // Returns the name of the discovered reference list // occupying the i / _num_q slot. const char* list_name(uint i); ! void enqueue_discovered_reflists(AbstractRefProcTaskExecutor* task_executor); protected: // "Preclean" the given discovered reference list // by removing references with strongly reachable referents. // Currently used in support of CMS only. --- 313,325 ---- // Returns the name of the discovered reference list // occupying the i / _num_q slot. const char* list_name(uint i); ! void enqueue_discovered_reflists(AbstractRefProcTaskExecutor* task_executor, GCTimer* gc_timer); ! ! ReferenceProcessorPhaseTimes* phase_times() const { return _phase_times; } protected: // "Preclean" the given discovered reference list // by removing references with strongly reachable referents. // Currently used in support of CMS only.
*** 422,432 **** VoidClosure* complete_gc, AbstractRefProcTaskExecutor* task_executor, GCTimer *gc_timer); // Enqueue references at end of GC (called by the garbage collector) ! void enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL); // If a discovery is in process that is being superceded, abandon it: all // the discovered lists will be empty, and all the objects on them will // have NULL discovered fields. Must be called only at a safepoint. void abandon_partial_discovery(); --- 428,439 ---- VoidClosure* complete_gc, AbstractRefProcTaskExecutor* task_executor, GCTimer *gc_timer); // Enqueue references at end of GC (called by the garbage collector) ! void enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL, ! GCTimer* gc_timer = NULL); // If a discovery is in process that is being superceded, abandon it: all // the discovered lists will be empty, and all the objects on them will // have NULL discovered fields. Must be called only at a safepoint. void abandon_partial_discovery();
< prev index next >