diff options
author | swarmer <swarmer@yandex-team.ru> | 2022-02-10 16:46:31 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:31 +0300 |
commit | 11a24635da4c4f39428b182c49a7bc35e47c9534 (patch) | |
tree | 1a2c5ffcf89eb53ecd79dbc9bc0a195c27404d0c /library/cpp/threading | |
parent | 317da38588b7898a99fd9168571408123350012b (diff) | |
download | ydb-11a24635da4c4f39428b182c49a7bc35e47c9534.tar.gz |
Restoring authorship annotation for <swarmer@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/threading')
-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 | ||||
-rw-r--r-- | library/cpp/threading/local_executor/ya.make | 2 |
7 files changed, 86 insertions, 86 deletions
diff --git a/library/cpp/threading/future/core/future-inl.h b/library/cpp/threading/future/core/future-inl.h index 109b94bf92..5fd4296a93 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 9ddca66b37..05950a568d 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 db969b2319..cb75731dbf 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 a6f9c55a6d..2753d5446c 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 d719719978..a173833a7f 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 f69924a3d6..6ff7d57baa 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); diff --git a/library/cpp/threading/local_executor/ya.make b/library/cpp/threading/local_executor/ya.make index e192634b94..df210f92bb 100644 --- a/library/cpp/threading/local_executor/ya.make +++ b/library/cpp/threading/local_executor/ya.make @@ -14,7 +14,7 @@ SRCS( PEERDIR( contrib/libs/tbb - library/cpp/threading/future + library/cpp/threading/future ) END() |