diff options
author | Vasily Gerasimov <UgnineSirdis@gmail.com> | 2022-02-10 16:49:09 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:09 +0300 |
commit | 6cdc8f140213c595e4ad38bc3d97fcef1146b8c3 (patch) | |
tree | f69637041e6fed76ebae0c74ae1fa0c4be6ab5b4 /library/cpp/monlib/dynamic_counters/counters.cpp | |
parent | e5d4696304c6689379ac7ce334512404d4b7836c (diff) | |
download | ydb-6cdc8f140213c595e4ad38bc3d97fcef1146b8c3.tar.gz |
Restoring authorship annotation for Vasily Gerasimov <UgnineSirdis@gmail.com>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/monlib/dynamic_counters/counters.cpp')
-rw-r--r-- | library/cpp/monlib/dynamic_counters/counters.cpp | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/library/cpp/monlib/dynamic_counters/counters.cpp b/library/cpp/monlib/dynamic_counters/counters.cpp index 3635d87d0d..b6371eb5c7 100644 --- a/library/cpp/monlib/dynamic_counters/counters.cpp +++ b/library/cpp/monlib/dynamic_counters/counters.cpp @@ -19,10 +19,10 @@ namespace { return dynamic_cast<TExpiringCounter*>(ptr.Get()); } - TExpiringHistogramCounter* AsExpiringHistogramCounter(const TIntrusivePtr<TCountableBase>& ptr) { - return dynamic_cast<TExpiringHistogramCounter*>(ptr.Get()); - } - + TExpiringHistogramCounter* AsExpiringHistogramCounter(const TIntrusivePtr<TCountableBase>& ptr) { + return dynamic_cast<TExpiringHistogramCounter*>(ptr.Get()); + } + THistogramCounter* AsHistogram(const TIntrusivePtr<TCountableBase>& ptr) { return dynamic_cast<THistogramCounter*>(ptr.Get()); } @@ -38,10 +38,10 @@ namespace { THistogramPtr AsHistogramRef(const TIntrusivePtr<TCountableBase>& ptr) { return VerifyDynamicCast<THistogramCounter*>(ptr.Get()); } - - bool IsExpiringCounter(const TIntrusivePtr<TCountableBase>& ptr) { - return AsExpiringCounter(ptr) != nullptr || AsExpiringHistogramCounter(ptr) != nullptr; - } + + bool IsExpiringCounter(const TIntrusivePtr<TCountableBase>& ptr) { + return AsExpiringCounter(ptr) != nullptr || AsExpiringHistogramCounter(ptr) != nullptr; + } } static constexpr TStringBuf INDENT = " "; @@ -76,11 +76,11 @@ THistogramPtr TDynamicCounters::GetHistogram(const TString& value, IHistogramCol THistogramPtr TDynamicCounters::GetNamedHistogram(const TString& name, const TString& value, IHistogramCollectorPtr collector, bool derivative, EVisibility vis) { return AsHistogramRef(GetNamedCounterImpl<false, THistogramCounter>(name, value, std::move(collector), derivative, vis)); -} +} THistogramPtr TDynamicCounters::GetExpiringHistogram(const TString& value, IHistogramCollectorPtr collector, bool derivative, EVisibility vis) { return GetExpiringNamedHistogram("sensor", value, std::move(collector), derivative, vis); -} +} THistogramPtr TDynamicCounters::GetExpiringNamedHistogram(const TString& name, const TString& value, IHistogramCollectorPtr collector, bool derivative, EVisibility vis) { return AsHistogramRef(GetNamedCounterImpl<true, TExpiringHistogramCounter>(name, value, std::move(collector), derivative, vis)); @@ -265,7 +265,7 @@ void TDynamicCounters::RemoveExpired() const { TAtomicBase count = 0; for (auto it = Counters.begin(); it != Counters.end();) { - if (IsExpiringCounter(it->second) && it->second->RefCount() == 1) { + if (IsExpiringCounter(it->second) && it->second->RefCount() == 1) { it = Counters.erase(it); ++count; } else { @@ -275,29 +275,29 @@ void TDynamicCounters::RemoveExpired() const { AtomicSub(ExpiringCount, count); } - -template <bool expiring, class TCounterType, class... TArgs> -TDynamicCounters::TCountablePtr TDynamicCounters::GetNamedCounterImpl(const TString& name, const TString& value, TArgs&&... args) { + +template <bool expiring, class TCounterType, class... TArgs> +TDynamicCounters::TCountablePtr TDynamicCounters::GetNamedCounterImpl(const TString& name, const TString& value, TArgs&&... args) { { TReadGuard g(Lock); auto it = Counters.find({name, value}); if (it != Counters.end()) { return it->second; } - } - + } + auto g = LockForUpdate("GetNamedCounterImpl", name, value); const TChildId key(name, value); auto it = Counters.lower_bound(key); if (it == Counters.end() || it->first != key) { auto value = MakeIntrusive<TCounterType>(std::forward<TArgs>(args)...); it = Counters.emplace_hint(it, key, value); - if constexpr (expiring) { + if constexpr (expiring) { AtomicIncrement(ExpiringCount); - } - } - return it->second; -} + } + } + return it->second; +} template <class TCounterType> TDynamicCounters::TCountablePtr TDynamicCounters::FindNamedCounterImpl(const TString& name, const TString& value) const { |