/** * @param op Operation closure. * @return Future. */ private <T> IgniteInternalFuture<T> asyncOp(final CO<IgniteInternalFuture<T>> op) { IgniteInternalFuture<T> fail = asyncOpAcquire(/*retry*/false); if (fail != null) return fail; IgniteInternalFuture<T> f = op.apply(); f.listen(new CI1<IgniteInternalFuture<?>>() { @Override public void apply(IgniteInternalFuture<?> f) { asyncOpRelease(/*retry*/false); } }); return f; }
/** * @param op Operation closure. * @return Future. */ @SuppressWarnings("unchecked") private <T> IgniteInternalFuture<T> asyncOp(final CO<IgniteInternalFuture<T>> op) { IgniteInternalFuture<T> fail = asyncOpAcquire(/*retry*/false); if (fail != null) return fail; IgniteInternalFuture<T> f = op.apply(); f.listen(new CI1<IgniteInternalFuture<?>>() { @Override public void apply(IgniteInternalFuture<?> f) { asyncOpRelease(/*retry*/false); } }); return f; }