1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Written by Doug Lea with assistance from members of JCP JSR-166
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expert Group and released to the public domain, as explained at
4a807b4d808d2591894daf13aab179b2e9c46a2f5Jesse Wilson * http://creativecommons.org/publicdomain/zero/1.0/
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.util.concurrent;
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
10bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson * A handler for tasks that cannot be executed by a {@link ThreadPoolExecutor}.
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since 1.5
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Doug Lea
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface RejectedExecutionHandler {
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Method that may be invoked by a {@link ThreadPoolExecutor} when
19bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * {@link ThreadPoolExecutor#execute execute} cannot accept a
20bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * task.  This may occur when no more threads or queue slots are
21bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * available because their bounds would be exceeded, or upon
22bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * shutdown of the Executor.
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
24bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * <p>In the absence of other alternatives, the method may throw
25bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * an unchecked {@link RejectedExecutionException}, which will be
26bba8d1acd6dfff06c94d761c67a30154ca5ca5dfJesse Wilson     * propagated to the caller of {@code execute}.
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param r the runnable task requested to be executed
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param executor the executor attempting to execute this task
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws RejectedExecutionException if there is no remedy
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    void rejectedExecution(Runnable r, ThreadPoolExecutor executor);
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
34