diff options
| author | swarmer <[email protected]> | 2022-02-10 16:46:31 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:46:31 +0300 | 
| commit | 11a24635da4c4f39428b182c49a7bc35e47c9534 (patch) | |
| tree | 1a2c5ffcf89eb53ecd79dbc9bc0a195c27404d0c /library/cpp/threading/future | |
| parent | 317da38588b7898a99fd9168571408123350012b (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/threading/future')
| -rw-r--r-- | library/cpp/threading/future/core/future-inl.h | 12 | ||||
| -rw-r--r-- | library/cpp/threading/future/future_ut.cpp | 100 | ||||
| -rw-r--r-- | library/cpp/threading/future/subscription/ya.make | 8 | ||||
| -rw-r--r-- | library/cpp/threading/future/wait/wait-inl.h | 10 | ||||
| -rw-r--r-- | library/cpp/threading/future/wait/wait.cpp | 24 | ||||
| -rw-r--r-- | library/cpp/threading/future/wait/wait.h | 16 | 
6 files changed, 85 insertions, 85 deletions
| diff --git a/library/cpp/threading/future/core/future-inl.h b/library/cpp/threading/future/core/future-inl.h index 109b94bf929..5fd4296a93c 100644 --- a/library/cpp/threading/future/core/future-inl.h +++ b/library/cpp/threading/future/core/future-inl.h @@ -961,12 +961,12 @@ namespace NThreading {      inline TFuture<T> MakeFuture() {          struct TCache {              TFuture<T> Instance{new NImpl::TFutureState<T>(Default<T>())}; -  -            TCache() {  -                // Immediately advance state from ValueSet to ValueRead.  -                // This should prevent corrupting shared value with an ExtractValue() call.  -                Y_UNUSED(Instance.GetValue());  -            }  + +            TCache() { +                // Immediately advance state from ValueSet to ValueRead. +                // This should prevent corrupting shared value with an ExtractValue() call. +                Y_UNUSED(Instance.GetValue()); +            }          };          return Singleton<TCache>()->Instance;      } diff --git a/library/cpp/threading/future/future_ut.cpp b/library/cpp/threading/future/future_ut.cpp index 9ddca66b37b..05950a568d4 100644 --- a/library/cpp/threading/future/future_ut.cpp +++ b/library/cpp/threading/future/future_ut.cpp @@ -260,11 +260,11 @@ namespace {          } -        Y_UNIT_TEST(ShouldWaitExceptionOrAll) {  +        Y_UNIT_TEST(ShouldWaitExceptionOrAll) {              TPromise<void> promise1 = NewPromise();              TPromise<void> promise2 = NewPromise(); -            TFuture<void> future = WaitExceptionOrAll(promise1, promise2);  +            TFuture<void> future = WaitExceptionOrAll(promise1, promise2);              UNIT_ASSERT(!future.HasValue());              promise1.SetValue(); @@ -274,7 +274,7 @@ namespace {              UNIT_ASSERT(future.HasValue());          } -        Y_UNIT_TEST(ShouldWaitExceptionOrAllVector) {  +        Y_UNIT_TEST(ShouldWaitExceptionOrAllVector) {              TPromise<void> promise1 = NewPromise();              TPromise<void> promise2 = NewPromise(); @@ -282,7 +282,7 @@ namespace {              promises.push_back(promise1);              promises.push_back(promise2); -            TFuture<void> future = WaitExceptionOrAll(promises);  +            TFuture<void> future = WaitExceptionOrAll(promises);              UNIT_ASSERT(!future.HasValue());              promise1.SetValue(); @@ -292,7 +292,7 @@ namespace {              UNIT_ASSERT(future.HasValue());          } -        Y_UNIT_TEST(ShouldWaitExceptionOrAllVectorWithValueType) {  +        Y_UNIT_TEST(ShouldWaitExceptionOrAllVectorWithValueType) {              TPromise<int> promise1 = NewPromise<int>();              TPromise<int> promise2 = NewPromise<int>(); @@ -300,7 +300,7 @@ namespace {              promises.push_back(promise1);              promises.push_back(promise2); -            TFuture<void> future = WaitExceptionOrAll(promises);  +            TFuture<void> future = WaitExceptionOrAll(promises);              UNIT_ASSERT(!future.HasValue());              promise1.SetValue(0); @@ -310,7 +310,7 @@ namespace {              UNIT_ASSERT(future.HasValue());          } -        Y_UNIT_TEST(ShouldWaitExceptionOrAllList) {  +        Y_UNIT_TEST(ShouldWaitExceptionOrAllList) {              TPromise<void> promise1 = NewPromise();              TPromise<void> promise2 = NewPromise(); @@ -318,7 +318,7 @@ namespace {              promises.push_back(promise1);              promises.push_back(promise2); -            TFuture<void> future = WaitExceptionOrAll(promises);  +            TFuture<void> future = WaitExceptionOrAll(promises);              UNIT_ASSERT(!future.HasValue());              promise1.SetValue(); @@ -328,10 +328,10 @@ namespace {              UNIT_ASSERT(future.HasValue());          } -        Y_UNIT_TEST(ShouldWaitExceptionOrAllVectorEmpty) {  +        Y_UNIT_TEST(ShouldWaitExceptionOrAllVectorEmpty) {              TVector<TFuture<void>> promises; -            TFuture<void> future = WaitExceptionOrAll(promises);  +            TFuture<void> future = WaitExceptionOrAll(promises);              UNIT_ASSERT(future.HasValue());          } @@ -480,21 +480,21 @@ namespace {              UNIT_CHECK_GENERATED_EXCEPTION(promise.ExtractValue(), TFutureException);          } -        Y_UNIT_TEST(ShouldNotExtractFromSharedDefault) {  -            UNIT_CHECK_GENERATED_EXCEPTION(MakeFuture<int>().ExtractValue(), TFutureException);  -  -            struct TStorage {  -                TString String = TString(100, 'a');  -            };  -            try {  -                TString s = MakeFuture<TStorage>().ExtractValue().String;  -                Y_UNUSED(s);  -            } catch (TFutureException) {  -                // pass  -            }  -            UNIT_ASSERT_VALUES_EQUAL(MakeFuture<TStorage>().GetValue().String, TString(100, 'a'));  -        }  -  +        Y_UNIT_TEST(ShouldNotExtractFromSharedDefault) { +            UNIT_CHECK_GENERATED_EXCEPTION(MakeFuture<int>().ExtractValue(), TFutureException); + +            struct TStorage { +                TString String = TString(100, 'a'); +            }; +            try { +                TString s = MakeFuture<TStorage>().ExtractValue().String; +                Y_UNUSED(s); +            } catch (TFutureException) { +                // pass +            } +            UNIT_ASSERT_VALUES_EQUAL(MakeFuture<TStorage>().GetValue().String, TString(100, 'a')); +        } +          Y_UNIT_TEST(HandlingRepetitiveSet) {              TPromise<int> promise = NewPromise<int>();              promise.SetValue(42); @@ -541,7 +541,7 @@ namespace {          Y_UNIT_TEST(WaitAllowsExtract) {              auto future = MakeFuture<int>(42);              TVector vec{future, future, future}; -            WaitExceptionOrAll(vec).GetValue();  +            WaitExceptionOrAll(vec).GetValue();              WaitAny(vec).GetValue();              UNIT_ASSERT_EQUAL(future.ExtractValue(), 42); @@ -553,30 +553,30 @@ namespace {              UNIT_ASSERT_EQUAL(future.ExtractValue(), 42);          } -  -        Y_UNIT_TEST(WaitExceptionOrAllException) {  -            auto promise1 = NewPromise();  -            auto promise2 = NewPromise();  -            auto future1 = promise1.GetFuture();  -            auto future2 = promise2.GetFuture();  -            auto wait = WaitExceptionOrAll(future1, future2);  -            promise2.SetException("foo-exception");  -            wait.Wait();  -            UNIT_ASSERT(future2.HasException());  -            UNIT_ASSERT(!future1.HasValue() && !future1.HasException());  -        }  -  -        Y_UNIT_TEST(WaitAllException) {  -            auto promise1 = NewPromise();  -            auto promise2 = NewPromise();  -            auto future1 = promise1.GetFuture();  -            auto future2 = promise2.GetFuture();  -            auto wait = WaitAll(future1, future2);  -            promise2.SetException("foo-exception");  -            UNIT_ASSERT(!wait.HasValue() && !wait.HasException());  -            promise1.SetValue();  -            UNIT_ASSERT_EXCEPTION_CONTAINS(wait.GetValueSync(), yexception, "foo-exception");  -        }  + +        Y_UNIT_TEST(WaitExceptionOrAllException) { +            auto promise1 = NewPromise(); +            auto promise2 = NewPromise(); +            auto future1 = promise1.GetFuture(); +            auto future2 = promise2.GetFuture(); +            auto wait = WaitExceptionOrAll(future1, future2); +            promise2.SetException("foo-exception"); +            wait.Wait(); +            UNIT_ASSERT(future2.HasException()); +            UNIT_ASSERT(!future1.HasValue() && !future1.HasException()); +        } + +        Y_UNIT_TEST(WaitAllException) { +            auto promise1 = NewPromise(); +            auto promise2 = NewPromise(); +            auto future1 = promise1.GetFuture(); +            auto future2 = promise2.GetFuture(); +            auto wait = WaitAll(future1, future2); +            promise2.SetException("foo-exception"); +            UNIT_ASSERT(!wait.HasValue() && !wait.HasException()); +            promise1.SetValue(); +            UNIT_ASSERT_EXCEPTION_CONTAINS(wait.GetValueSync(), yexception, "foo-exception"); +        }          Y_UNIT_TEST(FutureStateId) {              TestFutureStateId<void>(); diff --git a/library/cpp/threading/future/subscription/ya.make b/library/cpp/threading/future/subscription/ya.make index db969b23197..cb75731dbfd 100644 --- a/library/cpp/threading/future/subscription/ya.make +++ b/library/cpp/threading/future/subscription/ya.make @@ -13,10 +13,10 @@ SRCS(      wait_any.cpp  ) -PEERDIR(  -    library/cpp/threading/future  -)  -  +PEERDIR( +    library/cpp/threading/future +) +  END()  RECURSE_FOR_TESTS( diff --git a/library/cpp/threading/future/wait/wait-inl.h b/library/cpp/threading/future/wait/wait-inl.h index a6f9c55a6d7..2753d5446cc 100644 --- a/library/cpp/threading/future/wait/wait-inl.h +++ b/library/cpp/threading/future/wait/wait-inl.h @@ -13,17 +13,17 @@ namespace NThreading {              for (const auto& future: futures) {                  voidFutures.push_back(future.IgnoreResult()); -            }  -  +            } +              return voidFutures;          }      } -    template <typename TContainer>  +    template <typename TContainer>      [[nodiscard]] NImpl::EnableGenericWait<TContainer> WaitAll(const TContainer& futures) {          return WaitAll(NImpl::ToVoidFutures(futures)); -    }  -  +    } +      template <typename TContainer>      [[nodiscard]] NImpl::EnableGenericWait<TContainer> WaitExceptionOrAll(const TContainer& futures) {          return WaitExceptionOrAll(NImpl::ToVoidFutures(futures)); diff --git a/library/cpp/threading/future/wait/wait.cpp b/library/cpp/threading/future/wait/wait.cpp index d7197199788..a173833a7f9 100644 --- a/library/cpp/threading/future/wait/wait.cpp +++ b/library/cpp/threading/future/wait/wait.cpp @@ -23,11 +23,11 @@ namespace NThreading {          TFuture<void> WaitGeneric(TArrayRef<const TFuture<void>> futures) {              if (futures.empty()) {                  return MakeFuture(); -            }  +            }              if (futures.size() == 1) {                  return futures.front(); -            }  -  +            } +              TWaitGroup<WaitPolicy> wg;              for (const auto& fut : futures) {                  wg.Add(fut); @@ -41,19 +41,19 @@ namespace NThreading {      TFuture<void> WaitAll(const TFuture<void>& f1) {          return WaitGeneric<TWaitPolicy::TAll>(f1); -    }  -  +    } +      TFuture<void> WaitAll(const TFuture<void>& f1, const TFuture<void>& f2) {          return WaitGeneric<TWaitPolicy::TAll>(f1, f2); -    }  -  +    } +      TFuture<void> WaitAll(TArrayRef<const TFuture<void>> futures) {          return WaitGeneric<TWaitPolicy::TAll>(futures); -    }  -  -  -    ////////////////////////////////////////////////////////////////////////////////  -  +    } + + +    //////////////////////////////////////////////////////////////////////////////// +      TFuture<void> WaitExceptionOrAll(const TFuture<void>& f1) {          return WaitGeneric<TWaitPolicy::TExceptionOrAll>(f1);      } diff --git a/library/cpp/threading/future/wait/wait.h b/library/cpp/threading/future/wait/wait.h index f69924a3d64..6ff7d57baac 100644 --- a/library/cpp/threading/future/wait/wait.h +++ b/library/cpp/threading/future/wait/wait.h @@ -14,16 +14,16 @@ namespace NThreading {              !std::is_convertible_v<TContainer, TArrayRef<const TFuture<void>>>,              TFuture<void>>;      } -    // waits for all futures  -    [[nodiscard]] TFuture<void> WaitAll(const TFuture<void>& f1);  -    [[nodiscard]] TFuture<void> WaitAll(const TFuture<void>& f1, const TFuture<void>& f2);  +    // waits for all futures +    [[nodiscard]] TFuture<void> WaitAll(const TFuture<void>& f1); +    [[nodiscard]] TFuture<void> WaitAll(const TFuture<void>& f1, const TFuture<void>& f2);      [[nodiscard]] TFuture<void> WaitAll(TArrayRef<const TFuture<void>> futures); -    template <typename TContainer>  +    template <typename TContainer>      [[nodiscard]] NImpl::EnableGenericWait<TContainer> WaitAll(const TContainer& futures); -  -    // waits for the first exception or for all futures  -    [[nodiscard]] TFuture<void> WaitExceptionOrAll(const TFuture<void>& f1);  -    [[nodiscard]] TFuture<void> WaitExceptionOrAll(const TFuture<void>& f1, const TFuture<void>& f2);  + +    // waits for the first exception or for all futures +    [[nodiscard]] TFuture<void> WaitExceptionOrAll(const TFuture<void>& f1); +    [[nodiscard]] TFuture<void> WaitExceptionOrAll(const TFuture<void>& f1, const TFuture<void>& f2);      [[nodiscard]] TFuture<void> WaitExceptionOrAll(TArrayRef<const TFuture<void>> futures);      template <typename TContainer>      [[nodiscard]] NImpl::EnableGenericWait<TContainer> WaitExceptionOrAll(const TContainer& futures); | 
