public static CompositeFuture any(Future<?>... results) { CompositeFutureImpl composite = new CompositeFutureImpl(results); int len = results.length; for (int i = 0;i < len;i++) { results[i].setHandler(ar -> { Handler<AsyncResult<CompositeFuture>> handler = null; if (ar.succeeded()) { synchronized (composite) { if (!composite.isComplete()) { handler = composite.setCompleted(null); } } } else { synchronized (composite) { composite.count++; if (!composite.isComplete() && composite.count == len) { handler = composite.setCompleted(ar.cause()); } } } if (handler != null) { handler.handle(composite); } }); } if (results.length == 0) { composite.setCompleted(null); } return composite; }
public static CompositeFuture all(Future<?>... results) { CompositeFutureImpl composite = new CompositeFutureImpl(results); int len = results.length; for (int i = 0; i < len; i++) { results[i].setHandler(ar -> { Handler<AsyncResult<CompositeFuture>> handler = null; if (ar.succeeded()) { synchronized (composite) { composite.count++; if (!composite.isComplete() && composite.count == len) { handler = composite.setCompleted(null); } } } else { synchronized (composite) { if (!composite.isComplete()) { handler = composite.setCompleted(ar.cause()); } } } if (handler != null) { handler.handle(composite); } }); } if (len == 0) { composite.setCompleted(null); } return composite; }
private static CompositeFuture join(Function<CompositeFuture, Throwable> pred, Future<?>... results) { CompositeFutureImpl composite = new CompositeFutureImpl(results); int len = results.length; for (int i = 0; i < len; i++) { results[i].setHandler(ar -> { Handler<AsyncResult<CompositeFuture>> handler = null; synchronized (composite) { composite.count++; if (!composite.isComplete() && composite.count == len) { // Take decision here Throwable failure = pred.apply(composite); handler = composite.setCompleted(failure); } } if (handler != null) { handler.handle(composite); } }); } if (len == 0) { composite.setCompleted(null); } return composite; }
public static CompositeFuture any(Future<?>... results) { CompositeFutureImpl composite = new CompositeFutureImpl(results); int len = results.length; for (int i = 0;i < len;i++) { results[i].setHandler(ar -> { Handler<AsyncResult<CompositeFuture>> handler = null; if (ar.succeeded()) { synchronized (composite) { if (!composite.isComplete()) { handler = composite.setCompleted(null); } } } else { synchronized (composite) { composite.count++; if (!composite.isComplete() && composite.count == len) { handler = composite.setCompleted(ar.cause()); } } } if (handler != null) { handler.handle(composite); } }); } if (results.length == 0) { composite.setCompleted(null); } return composite; }
public static CompositeFuture all(Future<?>... results) { CompositeFutureImpl composite = new CompositeFutureImpl(results); int len = results.length; for (int i = 0; i < len; i++) { results[i].setHandler(ar -> { Handler<AsyncResult<CompositeFuture>> handler = null; if (ar.succeeded()) { synchronized (composite) { composite.count++; if (!composite.isComplete() && composite.count == len) { handler = composite.setCompleted(null); } } } else { synchronized (composite) { if (!composite.isComplete()) { handler = composite.setCompleted(ar.cause()); } } } if (handler != null) { handler.handle(composite); } }); } if (len == 0) { composite.setCompleted(null); } return composite; }
private static CompositeFuture join(Function<CompositeFuture, Throwable> pred, Future<?>... results) { CompositeFutureImpl composite = new CompositeFutureImpl(results); int len = results.length; for (int i = 0; i < len; i++) { results[i].setHandler(ar -> { Handler<AsyncResult<CompositeFuture>> handler = null; synchronized (composite) { composite.count++; if (!composite.isComplete() && composite.count == len) { // Take decision here Throwable failure = pred.apply(composite); handler = composite.setCompleted(failure); } } if (handler != null) { handler.handle(composite); } }); } if (len == 0) { composite.setCompleted(null); } return composite; }