001 /*
002 * This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 * This file is licensed to You under the Eclipse Public License (EPL);
005 * You may not use this file except in compliance with the License. You
006 * may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 * See the COPYRIGHT.txt file distributed with this work for information
011 * regarding copyright ownership.
012 */
013 package org.mmtk.policy;
014
015 import org.mmtk.utility.alloc.SegregatedFreeListLocal;
016 import org.mmtk.utility.Constants;
017
018 import org.vmmagic.pragma.*;
019
020 /**
021 * This class implements unsynchronized (local) elements of an
022 * explicitly managed collector. Allocation is via the segregated free list
023 * (@see org.mmtk.utility.alloc.SegregatedFreeList).<p>
024 *
025 * @see org.mmtk.utility.alloc.SegregatedFreeList
026 * @see ExplicitFreeListSpace
027 */
028 @Uninterruptible
029 public final class ExplicitFreeListLocal extends SegregatedFreeListLocal<ExplicitFreeListSpace> implements Constants {
030
031 /****************************************************************************
032 *
033 * Class variables
034 */
035
036 /****************************************************************************
037 *
038 * Instance variables
039 */
040
041 /****************************************************************************
042 *
043 * Initialization
044 */
045
046 /**
047 * Constructor
048 *
049 * @param space The rc space to which this allocator
050 * instances is bound.
051 */
052 public ExplicitFreeListLocal(ExplicitFreeListSpace space) {
053 super(space);
054 }
055
056 /****************************************************************************
057 *
058 * Allocation
059 */
060
061 /****************************************************************************
062 *
063 * Collection
064 */
065
066 /**
067 * Prepare for a collection. If paranoid, perform a sanity check.
068 */
069 public void prepare() {
070 flush();
071 }
072
073 /**
074 * Finish up after a collection.
075 */
076 public void release() {}
077 }