/*
* 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.harness.options;
import org.mmtk.harness.Harness;
import org.mmtk.harness.Mutator;
import org.mmtk.harness.lang.Env;
/**
* Number of collector threads.
*/
public final class GcEvery extends org.vmutil.options.EnumOption {
/**
* Create the option.
*/
public GcEvery() {
super(Harness.options, "Gc Every",
"MMTk Harness gc-stress",
new String[] { "NONE", "ALLOC", "SAFEPOINT", "WRITEBARRIER" },
System.getProperty("mmtk.harness.gc.every", "NONE"));
}
public void apply() {
switch(getValue()) {
case 0:
break;
case 1:
Harness.setGcEveryAlloc();
break;
case 2:
Env.setGcEverySafepoint();
break;
case 3:
Mutator.setGcEveryWB();
break;
}
}
/**
* Only accept non-negative values.
*/
protected void validate() {
}
}