/** * Returns non thread-safe {@link FutureImpl} implementation. * * @return non thread-safe {@link FutureImpl} implementation. */ public static <R> FutureImpl<R> createUnsafeFuture() { return UnsafeFutureImpl.create(); }
/** * {@inheritDoc} */ @Override public R get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { return get(); }
/** * Notify registered {@link CompletionHandler}s about the result. */ private void notifyCompletionHandlers() { if (completionHandlers != null) { for (CompletionHandler<R> completionHandler : completionHandlers) { notifyCompletionHandler(completionHandler); } completionHandlers = null; } }
/** * Notify blocked listeners threads about operation completion. */ protected void notifyHaveResult() { if (recycleMark == 0) { isDone = true; notifyCompletionHandlers(); } else { recycle(recycleMark == 2); } }
/** * {@inheritDoc} */ @Override public boolean cancel(boolean mayInterruptIfRunning) { isCancelled = true; notifyHaveResult(); return true; }
@Override public void recycle(boolean recycleResult) { if (recycleResult && result != null && result instanceof Cacheable) { ((Cacheable) result).recycle(); } reset(); ThreadCache.putToCache(CACHE_IDX, this); }
/** * Construct {@link Future}. */ @SuppressWarnings("unchecked") public static <R> UnsafeFutureImpl<R> create() { final UnsafeFutureImpl<R> future = ThreadCache.takeFromCache(CACHE_IDX); if (future != null) { return future; } return new UnsafeFutureImpl<R>(); }
@Override public void recycle() { recycle(false); } }
/** * Notify blocked listeners threads about operation completion. */ protected void notifyHaveResult() { if (recycleMark == 0) { isDone = true; notifyCompletionHandlers(); } else { recycle(recycleMark == 2); } }
/** * {@inheritDoc} */ @Override public boolean cancel(boolean mayInterruptIfRunning) { isCancelled = true; notifyHaveResult(); return true; }
@Override public void recycle(boolean recycleResult) { if (recycleResult && result != null && result instanceof Cacheable) { ((Cacheable) result).recycle(); } reset(); ThreadCache.putToCache(CACHE_IDX, this); }
/** * Construct {@link Future}. */ @SuppressWarnings("unchecked") public static <R> UnsafeFutureImpl<R> create() { final UnsafeFutureImpl<R> future = ThreadCache.takeFromCache(CACHE_IDX); if (future != null) { return future; } return new UnsafeFutureImpl<R>(); }
@Override public void recycle() { recycle(false); } }
/** * Notify blocked listeners threads about operation completion. */ protected void notifyHaveResult() { if (recycleMark == 0) { isDone = true; notifyCompletionHandlers(); } else { recycle(recycleMark == 2); } }
/** * Notify registered {@link CompletionHandler}s about the result. */ private void notifyCompletionHandlers() { if (completionHandlers != null) { for (CompletionHandler<R> completionHandler : completionHandlers) { notifyCompletionHandler(completionHandler); } completionHandlers = null; } }
/** * Set the result value and notify about operation completion. * * @param result the result value */ @Override public void result(R result) { this.result = result; notifyHaveResult(); }
@Override public void recycle(boolean recycleResult) { if (recycleResult && result != null && result instanceof Cacheable) { ((Cacheable) result).recycle(); } reset(); ThreadCache.putToCache(CACHE_IDX, this); }
/** * Construct {@link Future}. */ @SuppressWarnings("unchecked") public static <R> UnsafeFutureImpl<R> create() { final UnsafeFutureImpl<R> future = ThreadCache.takeFromCache(CACHE_IDX); if (future != null) { return future; } return new UnsafeFutureImpl<R>(); }
/** * {@inheritDoc} */ @Override public R get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { return get(); }
/** * Returns non thread-safe {@link FutureImpl} implementation. * * @return non thread-safe {@link FutureImpl} implementation. */ public static <R> FutureImpl<R> createUnsafeFuture() { return UnsafeFutureImpl.create(); }