annotate src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @ 844:bd02caa94611

6862919: Update copyright year Summary: Update copyright for files that have been modified in 2009, up to 07/09 Reviewed-by: tbell, ohair
author xdono
date Tue, 28 Jul 2009 12:12:40 -0700
parents 96b229c54d1e
children 3fc996d4edd2
rev   line source
ysr@342 1 /*
xdono@844 2 * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
ysr@342 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ysr@342 4 *
ysr@342 5 * This code is free software; you can redistribute it and/or modify it
ysr@342 6 * under the terms of the GNU General Public License version 2 only, as
ysr@342 7 * published by the Free Software Foundation.
ysr@342 8 *
ysr@342 9 * This code is distributed in the hope that it will be useful, but WITHOUT
ysr@342 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ysr@342 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ysr@342 12 * version 2 for more details (a copy is included in the LICENSE file that
ysr@342 13 * accompanied this code).
ysr@342 14 *
ysr@342 15 * You should have received a copy of the GNU General Public License version
ysr@342 16 * 2 along with this work; if not, write to the Free Software Foundation,
ysr@342 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ysr@342 18 *
ysr@342 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
ysr@342 20 * CA 95054 USA or visit www.sun.com if you need additional information or
ysr@342 21 * have any questions.
ysr@342 22 *
ysr@342 23 */
ysr@342 24
ysr@342 25 #include "incls/_precompiled.incl"
ysr@342 26 #include "incls/_vm_operations_g1.cpp.incl"
ysr@342 27
ysr@342 28 void VM_G1CollectForAllocation::doit() {
ysr@342 29 JvmtiGCForAllocationMarker jgcm;
ysr@342 30 G1CollectedHeap* g1h = G1CollectedHeap::heap();
ysr@342 31 _res = g1h->satisfy_failed_allocation(_size);
ysr@342 32 assert(g1h->is_in_or_null(_res), "result not in heap");
ysr@342 33 }
ysr@342 34
ysr@342 35 void VM_G1CollectFull::doit() {
ysr@342 36 JvmtiGCFullMarker jgcm;
ysr@342 37 G1CollectedHeap* g1h = G1CollectedHeap::heap();
ysr@342 38 GCCauseSetter x(g1h, _gc_cause);
ysr@342 39 g1h->do_full_collection(false /* clear_all_soft_refs */);
ysr@342 40 }
ysr@342 41
ysr@342 42 void VM_G1IncCollectionPause::doit() {
ysr@342 43 JvmtiGCForAllocationMarker jgcm;
ysr@342 44 G1CollectedHeap* g1h = G1CollectedHeap::heap();
ysr@342 45 GCCauseSetter x(g1h, GCCause::_g1_inc_collection_pause);
apetrusenko@677 46 g1h->do_collection_pause_at_safepoint();
ysr@342 47 }
ysr@342 48
ysr@342 49 void VM_CGC_Operation::doit() {
ysr@342 50 gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps);
ysr@342 51 TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
ysr@342 52 TraceTime t(_printGCMessage, PrintGC, true, gclog_or_tty);
ysr@342 53 SharedHeap* sh = SharedHeap::heap();
ysr@342 54 // This could go away if CollectedHeap gave access to _gc_is_active...
ysr@342 55 if (sh != NULL) {
ysr@342 56 IsGCActiveMark x;
ysr@342 57 _cl->do_void();
ysr@342 58 } else {
ysr@342 59 _cl->do_void();
ysr@342 60 }
ysr@342 61 }
ysr@342 62
ysr@342 63 bool VM_CGC_Operation::doit_prologue() {
ysr@342 64 Heap_lock->lock();
ysr@342 65 SharedHeap::heap()->_thread_holds_heap_lock_for_gc = true;
ysr@342 66 return true;
ysr@342 67 }
ysr@342 68
ysr@342 69 void VM_CGC_Operation::doit_epilogue() {
ysr@342 70 SharedHeap::heap()->_thread_holds_heap_lock_for_gc = false;
ysr@342 71 Heap_lock->unlock();
ysr@342 72 }