hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp
Print this page
rev 611 : Merge
@@ -1,10 +1,10 @@
#ifdef USE_PRAGMA_IDENT_HDR
#pragma ident "@(#)vmGCOperations.hpp 1.14 07/05/29 09:44:12 JVM"
#endif
/*
- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc. 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.
@@ -44,10 +44,11 @@
// VM_GC_HeapInspection
// - prints class histogram on SIGBREAK if PrintClassHistogram
// is specified; and also the attach "inspectheap" operation
//
// VM_GenCollectForAllocation
+// VM_GenCollectForPermanentAllocation
// VM_ParallelGCFailedAllocation
// VM_ParallelGCFailedPermanentAllocation
// - this operation is invoked when allocation is failed;
// operation performs garbage collection and tries to
// allocate afterwards;
@@ -167,5 +168,25 @@
{ _gc_cause = gc_cause; }
~VM_GenCollectFull() {}
virtual VMOp_Type type() const { return VMOp_GenCollectFull; }
virtual void doit();
};
+
+class VM_GenCollectForPermanentAllocation: public VM_GC_Operation {
+ private:
+ HeapWord* _res;
+ size_t _size; // size of object to be allocated
+ public:
+ VM_GenCollectForPermanentAllocation(size_t size,
+ unsigned int gc_count_before,
+ unsigned int full_gc_count_before,
+ GCCause::Cause gc_cause)
+ : VM_GC_Operation(gc_count_before, full_gc_count_before, true),
+ _size(size) {
+ _res = NULL;
+ _gc_cause = gc_cause;
+ }
+ ~VM_GenCollectForPermanentAllocation() {}
+ virtual VMOp_Type type() const { return VMOp_GenCollectForPermanentAllocation; }
+ virtual void doit();
+ HeapWord* result() const { return _res; }
+};