Define asynchronous ProfilesManager operations

This commit is contained in:
Katherine Yen
2023-07-19 10:43:58 -07:00
committed by GitHub
parent 352e1b2249
commit ade2e9c6cf
6 changed files with 248 additions and 28 deletions

View File

@@ -0,0 +1,15 @@
package org.whispersystems.textsecuregcm.util;
import io.micrometer.core.instrument.Timer;
import javax.annotation.Nonnull;
import java.util.concurrent.CompletionStage;
import java.util.function.Supplier;
public class AsyncTimerUtil {
@Nonnull
public static <T> CompletionStage<T> record(final Timer timer, final Supplier<CompletionStage<T>> toRecord) {
final Timer.Sample sample = Timer.start();
return toRecord.get().whenComplete((ignoreT, ignoreE) -> sample.stop(timer));
}
}