2945N/A * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 0N/A * published by the Free Software Foundation. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 1472N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A// MarkSweep takes care of global mark-compact garbage collection for a 0N/A// GenCollectedHeap using a four-phase pointer forwarding algorithm. All 0N/A// generations are assumed to support marking; those that can also support 0N/A// Class unloading will only occur when a full gc is invoked. 0N/A// If VALIDATE_MARK_SWEEP is defined, the -XX:+ValidateMarkSweep flag will 0N/A// be operational, and will provide slow but comprehensive self-checks within 0N/A// the GC. This is not enabled by default in product or release builds, 0N/A// since the extra call to track_adjusted_pointer() in _adjust_pointer() 0N/A// would be too much overhead, and would disturb performance measurement. 0N/A// However, debug builds are sometimes way too slow to run GC tests! 113N/A // Inline closure decls 1311N/A // Traversal stacks used during phase1 0N/A // Stack for live klasses to revisit at end of marking phase 941N/A // Set (stack) of MDO's to revisit at end of marking phase 0N/A // Reference processing (used in ...follow_contents) 0N/A // The following arrays are saved since the time of the last GC and 0N/A // assist in tracking down problems where someone has done an errant 0N/A // store into the heap, usually to an oop that wasn't properly 0N/A // handleized across a GC. If we crash or otherwise fail before the 0N/A // next GC, we can query these arrays to find out the object we had 0N/A // intended to do the store to (assuming it is still alive) and the 0N/A // offset within that object. Covered under RecordMarkSweepCompaction. 0N/A // Non public closures 941N/A // Class unloading. Clear weak refs in MDO's (ProfileData) 941N/A // at the end of the marking phase. 0N/A // Reference Processing 0N/A // Call backs for marking 113N/A // Mark pointer and follow contents. Empty marking stack afterwards. 113N/A // Check mark and maybe push on marking stack 113N/A // Save the mark word so it can be restored later 0N/A // Querying operation of RecordMarkSweepCompaction results. 0N/A // Finds and prints the current base oop and offset for a word 0N/A // within an oop that was live during the last GC. Helpful for 0N/A // tracking down heap stomps. 0N/A // Call backs for class unloading 941N/A // For weak refs clearing in MDO's 1879N/A#
endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP