blob: d4533de513291ca28b0457600ff33725e8284e60 [file] [log] [blame]
package org.testng.internal.thread;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.testng.TestNGException;
/**
* An <code>IPooledExecutor</code> implementation based on JDK1.5 native support.
*
* @author <a href="mailto:the_mindstorm@evolva.ro>the_mindstorm</a>
*/
public class PooledExecutorAdapter extends ThreadPoolExecutor implements IPooledExecutor {
public PooledExecutorAdapter(int noThreads) {
super(noThreads,
noThreads,
0L,
TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
}
public void execute(Runnable command) {
try {
super.execute(command);
}
catch(RejectedExecutionException ree) {
throw new TestNGException("Task was not accepted for execution", ree);
}
}
public void awaitTermination(long timeout) throws InterruptedException {
super.awaitTermination(timeout, TimeUnit.MILLISECONDS);
}
}