| /* |
| * This file is part of the Jikes RVM project (http://jikesrvm.org). |
| * |
| * This file is licensed to You under the Eclipse Public License (EPL); |
| * You may not use this file except in compliance with the License. You |
| * may obtain a copy of the License at |
| * |
| * http://www.opensource.org/licenses/eclipse-1.0.php |
| * |
| * See the COPYRIGHT.txt file distributed with this work for information |
| * regarding copyright ownership. |
| */ |
| package org.mmtk.vm; |
| |
| import org.mmtk.plan.Plan; |
| import org.mmtk.plan.CollectorContext; |
| import org.mmtk.plan.MutatorContext; |
| import org.mmtk.plan.PlanConstraints; |
| |
| import org.mmtk.utility.Log; |
| |
| import org.vmmagic.pragma.*; |
| |
| /** |
| * Stub to give access to plan local, constraint and global instances |
| */ |
| @Uninterruptible public abstract class ActivePlan { |
| |
| /** @return The active Plan instance. */ |
| public abstract Plan global(); |
| |
| /** @return The active PlanConstraints instance. */ |
| public abstract PlanConstraints constraints(); |
| |
| /** @return The active <code>CollectorContext</code> instance. */ |
| public abstract CollectorContext collector(); |
| |
| /** @return The active <code>MutatorContext</code> instance. */ |
| public abstract MutatorContext mutator(); |
| |
| /** @return The log for the active thread */ |
| public abstract Log log(); |
| |
| /** @return The maximum number of collector threads that may participate in parallel GC. */ |
| public abstract int collectorCount(); |
| |
| /** Reset the mutator iterator */ |
| public abstract void resetMutatorIterator(); |
| |
| /** |
| * Return the next <code>MutatorContext</code> in a |
| * synchronized iteration of all mutators. |
| * |
| * @return The next <code>MutatorContext</code> in a |
| * synchronized iteration of all mutators, or |
| * <code>null</code> when all mutators have been done. |
| */ |
| public abstract MutatorContext getNextMutator(); |
| } |