Mercurial Hosting > nabble
view src/fschmidt/util/java/FastFuture.java @ 68:00520880ad02
add fschmidt source
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 05 Oct 2025 17:24:15 -0600 |
parents | |
children |
line wrap: on
line source
package fschmidt.util.java; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; public final class FastFuture<V> implements Future<V> { private volatile V result; private volatile FutureTask<V> futureTask; public FastFuture(Callable<V> callable) { futureTask = new FutureTask<V>(callable); } public void run() { FutureTask<V> ft = futureTask; if( ft != null ) { ft.run(); } } public boolean cancel(boolean mayInterruptIfRunning) { throw new UnsupportedOperationException(); } public boolean isCancelled() { return false; } public boolean isDone() { return futureTask == null; } public V get() throws InterruptedException, ExecutionException { FutureTask<V> ft = futureTask; if( ft != null ) { result = ft.get(); futureTask = null; } return result; } public V get(long timeout,TimeUnit unit) { throw new UnsupportedOperationException(); } }