diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2021-09-17 11:07:12 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-09-17 11:30:59 +0000 |
commit | d18734dcf759b3c43d93664934f6711a5c0e47bc (patch) | |
tree | f666ccd70b9ba59a5524ddf49ec0d5414c0b472b | |
parent | 2a82df1a0433d21bfb55ca7e6ff2b0d47822d34c (diff) | |
download | mongo-d18734dcf759b3c43d93664934f6711a5c0e47bc.tar.gz |
SERVER-60027 avoid makePromiseFuture in future_util
-rw-r--r-- | src/mongo/util/future_util.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/mongo/util/future_util.h b/src/mongo/util/future_util.h index 82dde8159a6..34509cb2e4a 100644 --- a/src/mongo/util/future_util.h +++ b/src/mongo/util/future_util.h @@ -178,7 +178,8 @@ private: if (cancelToken.isCanceled()) return ExecutorFuture<ReturnType>(executor, asyncTryCanceledStatus()); - auto [promise, future] = makePromiseFuture<ReturnType>(); + Promise<ReturnType> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto wrappedPromise = std::make_unique<PromiseWithCustomBrokenStatus<ReturnType>>( std::move(promise), Status(ErrorCodes::ShutdownInProgress, "Terminated loop due to executor shutdown")); @@ -359,7 +360,8 @@ private: if (cancelToken.isCanceled()) return ExecutorFuture<ReturnType>(executor, asyncTryCanceledStatus()); - auto [promise, future] = makePromiseFuture<ReturnType>(); + Promise<ReturnType> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto wrappedPromise = std::make_unique<PromiseWithCustomBrokenStatus<ReturnType>>( std::move(promise), Status(ErrorCodes::ShutdownInProgress, "Terminated loop due to executor shutdown")); @@ -509,7 +511,8 @@ SemiFuture<ResultVector> whenAllSucceed(std::vector<FutureLike>&& futures) { ResultVector intermediateResult; }; - auto [promise, future] = makePromiseFuture<ResultVector>(); + Promise<ResultVector> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto sharedBlock = std::make_shared<SharedBlock>(futures.size(), std::move(promise)); for (size_t i = 0; i < futures.size(); ++i) { @@ -566,7 +569,8 @@ SemiFuture<void> whenAllSucceed(std::vector<FutureLike>&& futures) { Promise<void> resultPromise; }; - auto [promise, future] = makePromiseFuture<void>(); + Promise<void> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto sharedBlock = std::make_shared<SharedBlock>(futures.size(), std::move(promise)); for (size_t i = 0; i < futures.size(); ++i) { @@ -626,7 +630,8 @@ SemiFuture<ResultVector> whenAll(std::vector<FutureT>&& futures) { Promise<ResultVector> resultPromise; }; - auto [promise, future] = makePromiseFuture<ResultVector>(); + Promise<ResultVector> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto sharedBlock = std::make_shared<SharedBlock>(futures.size(), std::move(promise)); for (size_t i = 0; i < futures.size(); ++i) { @@ -678,7 +683,8 @@ SemiFuture<Result> whenAny(std::vector<FutureT>&& futures) { Promise<Result> resultPromise; }; - auto [promise, future] = makePromiseFuture<Result>(); + Promise<Result> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto sharedBlock = std::make_shared<SharedBlock>(std::move(promise)); for (size_t i = 0; i < futures.size(); ++i) { @@ -747,7 +753,8 @@ SemiFuture<Value> withCancellation(FutureT&& inputFuture, const CancellationToke Promise<Value> resultPromise; }; - auto [promise, future] = makePromiseFuture<Value>(); + Promise<Value> promise{NonNullPromiseTag{}}; + auto future = promise.getFuture(); auto sharedBlock = std::make_shared<SharedBlock>(std::move(promise)); std::move(inputFuture) |