/*
* Written by Doug Lea with assistance from members of JCP JSR-166
* Expert Group and released to the public domain. Use, modify, and
* redistribute this code in any way without acknowledgement.
*/
package java.util.concurrent;
/**
* A handler for tasks that cannot be executed by a {@link ThreadedExecutor}.
*
* @since 1.5
*
* @spec JSR-166
* @revised $Date: 2003/05/27 15:50:14 $
* @editor $Author: dl $
*/
public interface RejectedExecutionHandler {
/**
* Method invoked by ThreadPoolExecutor when
* execute cannot submit a task. This may occur when no
* more threads or queue slots are available because their bounds
* would be exceeded, or upon shutdown of the Executor.
*
* In the absence other alternatives, the method may throw an
* unchecked RejectedExecutionException, which will be
* propagated to the caller of execute.
*
* @param r the runnable task requested to be executed
* @param executor the executor attempting to execute this task
* @throws RejectedExecutionException if there is no remedy
*/
void rejectedExecution(Runnable r, ThreadPoolExecutor executor);
}