18 |
|
/** |
19 |
|
* FutureTask extension to enqueue upon completion |
20 |
|
*/ |
21 |
< |
private class QueueingFuture<T> extends FutureTask<T> { |
22 |
< |
QueueingFuture(Callable<T> c) { super(c); } |
23 |
< |
QueueingFuture(Runnable t, T r) { super(t, r); } |
24 |
< |
protected void done() { completionQueue.add((Future<V>)this); } |
21 |
> |
private class QueueingFuture extends FutureTask<V> { |
22 |
> |
QueueingFuture(Callable<V> c) { super(c); } |
23 |
> |
QueueingFuture(Runnable t, V r) { super(t, r); } |
24 |
> |
protected void done() { completionQueue.add(this); } |
25 |
|
} |
26 |
|
|
27 |
|
/** |
58 |
|
} |
59 |
|
|
60 |
|
public Future<V> submit(Callable<V> task) { |
61 |
< |
QueueingFuture<V> f = new QueueingFuture<V>(task); |
61 |
> |
QueueingFuture f = new QueueingFuture(task); |
62 |
|
executor.execute(f); |
63 |
|
return f; |
64 |
|
} |
65 |
|
|
66 |
|
public Future<V> submit(Runnable task, V result) { |
67 |
< |
QueueingFuture<V> f = new QueueingFuture<V>(task, result); |
67 |
> |
QueueingFuture f = new QueueingFuture(task, result); |
68 |
|
executor.execute(f); |
69 |
|
return f; |
70 |
|
} |