ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/Executors.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/Executors.java (file contents):
Revision 1.9 by jozart, Sat Jun 7 16:18:29 2003 UTC vs.
Revision 1.10 by dl, Wed Jun 11 13:17:20 2003 UTC

# Line 156 | Line 156 | public class Executors {
156       * for execution
157       */
158      public static <T> Future<T> execute(Executor executor, Runnable task, T value) {
159 <        FutureTask<T> ftask;
160 <        if (executor instanceof ThreadPoolExecutor) {
161 <            ftask = new ThreadPoolFutureTask<T>(
162 <                (ThreadPoolExecutor) executor, task, value);
163 <        } else {
164 <            ftask = new FutureTask<T>(task, value);
165 <        }
159 >        FutureTask<T> ftask = new FutureTask<T>(task, value);
160          executor.execute(ftask);
161          return ftask;
162      }
# Line 178 | Line 172 | public class Executors {
172       * for execution
173       */
174      public static <T> FutureTask<T> execute(Executor executor, Callable<T> task) {
175 <        FutureTask<T> ftask;
182 <        if (executor instanceof ThreadPoolExecutor) {
183 <            ftask = new ThreadPoolFutureTask<T>(
184 <                (ThreadPoolExecutor) executor, task);
185 <        } else {
186 <            ftask = new FutureTask<T>(task);
187 <        }
175 >        FutureTask<T> ftask = new FutureTask<T>(task);
176          executor.execute(ftask);
177          return ftask;
178      }
# Line 222 | Line 210 | public class Executors {
210          return ftask.get();
211      }
212  
225    private static class ThreadPoolFutureTask<V> extends FutureTask<V> {
226
227        ThreadPoolFutureTask(ThreadPoolExecutor tpe, Callable<V> callable) {
228            super(callable);
229            this.tpe = tpe;
230        }
231
232        ThreadPoolFutureTask(ThreadPoolExecutor tpe, Runnable runnable, V result) {
233            super(runnable, result);
234            this.tpe = tpe;
235        }
236
237        public boolean cancel(boolean mayInterruptIfRunning) {
238            tpe.remove(this); // ignore success/failure
239            return super.cancel(mayInterruptIfRunning);
240        }
241
242        private final ThreadPoolExecutor tpe;
243    }
213   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines