defNewGeneration.inline.hpp revision 0
553N/A * Copyright 2001-2006 Sun Microsystems, Inc. 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. 553N/A * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 553N/A * CA 95054 USA or visit www.sun.com if you need additional information or 0N/A // This is the slow-path allocation for the DefNewGeneration. 0N/A // Most allocations are fast-path in compiled code. 0N/A // We try to allocate from the eden. If that works, we are happy. 0N/A // Note that since DefNewGeneration supports lock-free allocation, we 0N/A // have to use it here, as well. // Tell the next generation we reached a limit. "invalid state after allocation_limit_reached returned null");
// The allocation failed and the soft limit is equal to the hard limit, // there are no reasons to do an attempt to allocate // Try to allocate until succeeded or the soft limit can't be adjusted // If the eden is full and the last collection bailed out, we are running // out of heap space, and we try to allocate the from-space, too. // allocate_from_space can't be inlined because that would introduce a // circular dependency at compile time. // Ensure that _end and _soft_end are the same in eden space.