private void closeAllCursors(CloseCallback callback, final Object ctx) { // Close all cursors in parallel List<CompletableFuture<Void>> futures = Lists.newArrayList(); for (ManagedCursor cursor : cursors) { Futures.CloseFuture closeFuture = new Futures.CloseFuture(); cursor.asyncClose(closeFuture, null); futures.add(closeFuture); } Futures.waitForAll(futures).thenRun(() -> { callback.closeComplete(ctx); }).exceptionally(exception -> { callback.closeFailed(ManagedLedgerException.getManagedLedgerException(exception.getCause()), ctx); return null; }); }
private void closeAllCursors(CloseCallback callback, final Object ctx) { // Close all cursors in parallel List<CompletableFuture<Void>> futures = Lists.newArrayList(); for (ManagedCursor cursor : cursors) { Futures.CloseFuture closeFuture = new Futures.CloseFuture(); cursor.asyncClose(closeFuture, null); futures.add(closeFuture); } Futures.waitForAll(futures).thenRun(() -> { callback.closeComplete(ctx); }).exceptionally(exception -> { callback.closeFailed(ManagedLedgerException.getManagedLedgerException(exception.getCause()), ctx); return null; }); }
private void closeAllCursors(CloseCallback callback, final Object ctx) { // Close all cursors in parallel List<CompletableFuture<Void>> futures = Lists.newArrayList(); for (ManagedCursor cursor : cursors) { Futures.CloseFuture closeFuture = new Futures.CloseFuture(); cursor.asyncClose(closeFuture, null); futures.add(closeFuture); } Futures.waitForAll(futures).thenRun(() -> { callback.closeComplete(ctx); }).exceptionally(exception -> { callback.closeFailed(new ManagedLedgerException(exception), ctx); return null; }); }