< prev index next >

src/share/vm/gc/g1/vm_operations_g1.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2001, 2015, 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, 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.
*** 25,34 **** --- 25,35 ---- #ifndef SHARE_VM_GC_G1_VM_OPERATIONS_G1_HPP #define SHARE_VM_GC_G1_VM_OPERATIONS_G1_HPP #include "gc/g1/g1AllocationContext.hpp" #include "gc/shared/gcId.hpp" + #include "gc/shared/referencePendingListLocker.hpp" #include "gc/shared/vmGCOperations.hpp" // VM_operations for the G1 collector. // VM_GC_Operation: // - VM_CGC_Operation
*** 102,122 **** // Concurrent GC stop-the-world operations such as remark and cleanup; // consider sharing these with CMS's counterparts. class VM_CGC_Operation: public VM_Operation { VoidClosure* _cl; const char* _printGCMessage; ! bool _needs_pll; uint _gc_id; protected: // java.lang.ref.Reference support void acquire_pending_list_lock(); void release_and_notify_pending_list_lock(); public: ! VM_CGC_Operation(VoidClosure* cl, const char *printGCMsg, bool needs_pll) ! : _cl(cl), _printGCMessage(printGCMsg), _needs_pll(needs_pll), _gc_id(GCId::current()) { } virtual VMOp_Type type() const { return VMOp_CGC_Operation; } virtual void doit(); virtual bool doit_prologue(); virtual void doit_epilogue(); virtual const char* name() const { --- 103,124 ---- // Concurrent GC stop-the-world operations such as remark and cleanup; // consider sharing these with CMS's counterparts. class VM_CGC_Operation: public VM_Operation { VoidClosure* _cl; const char* _printGCMessage; ! bool _needs_pending_list_lock; ! ReferencePendingListLocker _pending_list_locker; uint _gc_id; protected: // java.lang.ref.Reference support void acquire_pending_list_lock(); void release_and_notify_pending_list_lock(); public: ! VM_CGC_Operation(VoidClosure* cl, const char *printGCMsg, bool needs_pending_list_lock) ! : _cl(cl), _printGCMessage(printGCMsg), _needs_pending_list_lock(needs_pending_list_lock), _gc_id(GCId::current()) {} virtual VMOp_Type type() const { return VMOp_CGC_Operation; } virtual void doit(); virtual bool doit_prologue(); virtual void doit_epilogue(); virtual const char* name() const {
< prev index next >