/*
* 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.scheduler;
import java.util.Collection;
import org.mmtk.harness.lang.Env;
public class TestMutator implements Schedulable {
private final Collection<Object> resultPool;
private final Collection<Object> items;
/**
* Create a test mutator that inserts 'results' into 'resultpool' when it is scheduled,
* with a yield point between every insertion.
* @param resultPool
* @param result
*/
TestMutator(Collection<Object> resultPool, Collection<Object> items) {
super();
this.resultPool = resultPool;
this.items = items;
}
/**
* @see org.mmtk.harness.scheduler.Schedulable#execute(org.mmtk.harness.lang.Env)
*/
@Override
public void execute(Env env) {
for (Object item : items) {
resultPool.add(item);
Scheduler.yield();
}
}
}