Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…arnings.

RELNOTES=n/a
PiperOrigin-RevId: 646147391
  • Loading branch information
cpovirk authored and Google Java Core Libraries committed Jun 24, 2024
1 parent f46b178 commit 19cfef2
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ abstract class AbstractCatchingFuture<
return future;
}

static <X extends Throwable, V extends @Nullable Object> ListenableFuture<V> create(
static <X extends Throwable, V extends @Nullable Object> ListenableFuture<V> createAsync(
ListenableFuture<? extends V> input,
Class<X> exceptionType,
AsyncFunction<? super X, ? extends V> fallback,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
abstract class AbstractTransformFuture<
I extends @Nullable Object, O extends @Nullable Object, F, T extends @Nullable Object>
extends FluentFuture.TrustedFuture<O> implements Runnable {
static <I extends @Nullable Object, O extends @Nullable Object> ListenableFuture<O> create(
static <I extends @Nullable Object, O extends @Nullable Object> ListenableFuture<O> createAsync(
ListenableFuture<I> input,
AsyncFunction<? super I, ? extends O> function,
Executor executor) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,24 @@ public interface ValueAndCloserConsumer<V extends @Nullable Object> {
*/
public static <V extends @Nullable Object> ClosingFuture<V> submit(
ClosingCallable<V> callable, Executor executor) {
return new ClosingFuture<>(callable, executor);
checkNotNull(callable);
CloseableList closeables = new CloseableList();
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new Callable<V>() {
@Override
@ParametricNullness
public V call() throws Exception {
return callable.call(closeables.closer);
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
return new ClosingFuture<>(task, closeables);
}

/**
Expand All @@ -394,7 +411,30 @@ public interface ValueAndCloserConsumer<V extends @Nullable Object> {
*/
public static <V extends @Nullable Object> ClosingFuture<V> submitAsync(
AsyncClosingCallable<V> callable, Executor executor) {
return new ClosingFuture<>(callable, executor);
checkNotNull(callable);
CloseableList closeables = new CloseableList();
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new AsyncCallable<V>() {
@Override
public ListenableFuture<V> call() throws Exception {
CloseableList newCloseables = new CloseableList();
try {
ClosingFuture<V> closingFuture = callable.call(newCloseables.closer);
closingFuture.becomeSubsumedInto(closeables);
return closingFuture.future;
} finally {
closeables.add(newCloseables, directExecutor());
}
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
return new ClosingFuture<>(task, closeables);
}

/**
Expand Down Expand Up @@ -583,57 +623,16 @@ public static Combiner whenAllSucceed(
}

private final AtomicReference<State> state = new AtomicReference<>(OPEN);
private final CloseableList closeables = new CloseableList();
private final CloseableList closeables;
private final FluentFuture<V> future;

private ClosingFuture(ListenableFuture<V> future) {
this.future = FluentFuture.from(future);
}

private ClosingFuture(final ClosingCallable<V> callable, Executor executor) {
checkNotNull(callable);
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new Callable<V>() {
@Override
@ParametricNullness
public V call() throws Exception {
return callable.call(closeables.closer);
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
this.future = task;
this(future, new CloseableList());
}

private ClosingFuture(final AsyncClosingCallable<V> callable, Executor executor) {
checkNotNull(callable);
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new AsyncCallable<V>() {
@Override
public ListenableFuture<V> call() throws Exception {
CloseableList newCloseables = new CloseableList();
try {
ClosingFuture<V> closingFuture = callable.call(newCloseables.closer);
closingFuture.becomeSubsumedInto(closeables);
return closingFuture.future;
} finally {
closeables.add(newCloseables, directExecutor());
}
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
this.future = task;
private ClosingFuture(ListenableFuture<V> future, CloseableList closeables) {
this.future = FluentFuture.from(future);
this.closeables = closeables;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ private Futures() {}
Class<X> exceptionType,
AsyncFunction<? super X, ? extends V> fallback,
Executor executor) {
return AbstractCatchingFuture.create(input, exceptionType, fallback, executor);
return AbstractCatchingFuture.createAsync(input, exceptionType, fallback, executor);
}

/**
Expand Down Expand Up @@ -417,7 +417,7 @@ ListenableFuture<O> transformAsync(
ListenableFuture<I> input,
AsyncFunction<? super I, ? extends O> function,
Executor executor) {
return AbstractTransformFuture.create(input, function, executor);
return AbstractTransformFuture.createAsync(input, function, executor);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,6 @@ abstract class GwtFuturesCatchingSpecialization {
Class<Throwable> exceptionType,
AsyncFunction<? super Throwable, ? extends V> fallback,
Executor executor) {
return AbstractCatchingFuture.create(input, exceptionType, fallback, executor);
return AbstractCatchingFuture.createAsync(input, exceptionType, fallback, executor);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ abstract class AbstractCatchingFuture<
return future;
}

static <X extends Throwable, V extends @Nullable Object> ListenableFuture<V> create(
static <X extends Throwable, V extends @Nullable Object> ListenableFuture<V> createAsync(
ListenableFuture<? extends V> input,
Class<X> exceptionType,
AsyncFunction<? super X, ? extends V> fallback,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
abstract class AbstractTransformFuture<
I extends @Nullable Object, O extends @Nullable Object, F, T extends @Nullable Object>
extends FluentFuture.TrustedFuture<O> implements Runnable {
static <I extends @Nullable Object, O extends @Nullable Object> ListenableFuture<O> create(
static <I extends @Nullable Object, O extends @Nullable Object> ListenableFuture<O> createAsync(
ListenableFuture<I> input,
AsyncFunction<? super I, ? extends O> function,
Executor executor) {
Expand Down
95 changes: 47 additions & 48 deletions guava/src/com/google/common/util/concurrent/ClosingFuture.java
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,24 @@ public interface ValueAndCloserConsumer<V extends @Nullable Object> {
*/
public static <V extends @Nullable Object> ClosingFuture<V> submit(
ClosingCallable<V> callable, Executor executor) {
return new ClosingFuture<>(callable, executor);
checkNotNull(callable);
CloseableList closeables = new CloseableList();
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new Callable<V>() {
@Override
@ParametricNullness
public V call() throws Exception {
return callable.call(closeables.closer);
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
return new ClosingFuture<>(task, closeables);
}

/**
Expand All @@ -399,7 +416,30 @@ public interface ValueAndCloserConsumer<V extends @Nullable Object> {
*/
public static <V extends @Nullable Object> ClosingFuture<V> submitAsync(
AsyncClosingCallable<V> callable, Executor executor) {
return new ClosingFuture<>(callable, executor);
checkNotNull(callable);
CloseableList closeables = new CloseableList();
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new AsyncCallable<V>() {
@Override
public ListenableFuture<V> call() throws Exception {
CloseableList newCloseables = new CloseableList();
try {
ClosingFuture<V> closingFuture = callable.call(newCloseables.closer);
closingFuture.becomeSubsumedInto(closeables);
return closingFuture.future;
} finally {
closeables.add(newCloseables, directExecutor());
}
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
return new ClosingFuture<>(task, closeables);
}

/**
Expand Down Expand Up @@ -588,57 +628,16 @@ public static Combiner whenAllSucceed(
}

private final AtomicReference<State> state = new AtomicReference<>(OPEN);
private final CloseableList closeables = new CloseableList();
private final CloseableList closeables;
private final FluentFuture<V> future;

private ClosingFuture(ListenableFuture<V> future) {
this.future = FluentFuture.from(future);
}

private ClosingFuture(final ClosingCallable<V> callable, Executor executor) {
checkNotNull(callable);
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new Callable<V>() {
@Override
@ParametricNullness
public V call() throws Exception {
return callable.call(closeables.closer);
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
this.future = task;
this(future, new CloseableList());
}

private ClosingFuture(final AsyncClosingCallable<V> callable, Executor executor) {
checkNotNull(callable);
TrustedListenableFutureTask<V> task =
TrustedListenableFutureTask.create(
new AsyncCallable<V>() {
@Override
public ListenableFuture<V> call() throws Exception {
CloseableList newCloseables = new CloseableList();
try {
ClosingFuture<V> closingFuture = callable.call(newCloseables.closer);
closingFuture.becomeSubsumedInto(closeables);
return closingFuture.future;
} finally {
closeables.add(newCloseables, directExecutor());
}
}

@Override
public String toString() {
return callable.toString();
}
});
executor.execute(task);
this.future = task;
private ClosingFuture(ListenableFuture<V> future, CloseableList closeables) {
this.future = FluentFuture.from(future);
this.closeables = closeables;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions guava/src/com/google/common/util/concurrent/Futures.java
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ private Futures() {}
Class<X> exceptionType,
AsyncFunction<? super X, ? extends V> fallback,
Executor executor) {
return AbstractCatchingFuture.create(input, exceptionType, fallback, executor);
return AbstractCatchingFuture.createAsync(input, exceptionType, fallback, executor);
}

/**
Expand Down Expand Up @@ -452,7 +452,7 @@ ListenableFuture<O> transformAsync(
ListenableFuture<I> input,
AsyncFunction<? super I, ? extends O> function,
Executor executor) {
return AbstractTransformFuture.create(input, function, executor);
return AbstractTransformFuture.createAsync(input, function, executor);
}

/**
Expand Down

0 comments on commit 19cfef2

Please sign in to comment.