diff options
| author | Vasily Gerasimov <[email protected]> | 2022-02-10 16:49:09 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:49:09 +0300 | 
| commit | 6cdc8f140213c595e4ad38bc3d97fcef1146b8c3 (patch) | |
| tree | f69637041e6fed76ebae0c74ae1fa0c4be6ab5b4 /library/cpp/monlib/dynamic_counters/counters.cpp | |
| parent | e5d4696304c6689379ac7ce334512404d4b7836c (diff) | |
Restoring authorship annotation for Vasily Gerasimov <[email protected]>. 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 3635d87d0d2..b6371eb5c73 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 { | 
