diff options
| author | robot-piglet <[email protected]> | 2024-05-27 22:04:27 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2024-05-27 22:11:59 +0300 |
| commit | 5f0b6de771b58fe0bce9845389b3766b10d882a8 (patch) | |
| tree | c3f418a35128ab9520c581cabaea5c0d0d2df7e6 | |
| parent | b87540ae60a7a4ab03b94777fce5c5815b97f5a0 (diff) | |
Intermediate changes
| -rw-r--r-- | yt/yt/core/test_framework/test_memory_tracker.cpp | 27 | ||||
| -rw-r--r-- | yt/yt/core/test_framework/test_memory_tracker.h | 29 |
2 files changed, 33 insertions, 23 deletions
diff --git a/yt/yt/core/test_framework/test_memory_tracker.cpp b/yt/yt/core/test_framework/test_memory_tracker.cpp index e6ba6b87869..fd8b0de0021 100644 --- a/yt/yt/core/test_framework/test_memory_tracker.cpp +++ b/yt/yt/core/test_framework/test_memory_tracker.cpp @@ -4,9 +4,8 @@ namespace NYT { //////////////////////////////////////////////////////////////////////////////// -TTestNodeMemoryTracker::TTestNodeMemoryTracker(size_t limit) - : Usage_(0) - , Limit_(limit) +TTestNodeMemoryTracker::TTestNodeMemoryTracker(i64 limit) + : Limit_(limit) { } i64 TTestNodeMemoryTracker::GetLimit() const @@ -130,4 +129,26 @@ TSharedRef TTestNodeMemoryTracker::Track(TSharedRef reference, bool keepExisting //////////////////////////////////////////////////////////////////////////////// +TTestNodeMemoryTracker::TTestTrackedReferenceHolder::TTestTrackedReferenceHolder( + TSharedRef underlying, + TMemoryUsageTrackerGuard guard) + : Underlying_(std::move(underlying)) + , Guard_(std::move(guard)) +{ } + +TSharedRangeHolderPtr TTestNodeMemoryTracker::TTestTrackedReferenceHolder::Clone(const TSharedRangeHolderCloneOptions& options) +{ + if (options.KeepMemoryReferenceTracking) { + return this; + } + return Underlying_.GetHolder()->Clone(options); +} + +std::optional<size_t> TTestNodeMemoryTracker::TTestTrackedReferenceHolder::GetTotalByteSize() const +{ + return Underlying_.GetHolder()->GetTotalByteSize(); +} + +//////////////////////////////////////////////////////////////////////////////// + } // namespace NYT diff --git a/yt/yt/core/test_framework/test_memory_tracker.h b/yt/yt/core/test_framework/test_memory_tracker.h index 1ef5f635b1c..84a8d428bb7 100644 --- a/yt/yt/core/test_framework/test_memory_tracker.h +++ b/yt/yt/core/test_framework/test_memory_tracker.h @@ -15,7 +15,7 @@ class TTestNodeMemoryTracker : public IMemoryUsageTracker { public: - explicit TTestNodeMemoryTracker(size_t limit); + explicit TTestNodeMemoryTracker(i64 limit); i64 GetLimit() const override; i64 GetUsed() const override; @@ -35,29 +35,18 @@ public: TSharedRef reference, bool keepHolder = false) override; private: + class TTestTrackedReferenceHolder : public TSharedRangeHolder { public: TTestTrackedReferenceHolder( TSharedRef underlying, - TMemoryUsageTrackerGuard guard) - : Underlying_(std::move(underlying)) - , Guard_(std::move(guard)) - { } - - TSharedRangeHolderPtr Clone(const TSharedRangeHolderCloneOptions& options) override - { - if (options.KeepMemoryReferenceTracking) { - return this; - } - return Underlying_.GetHolder()->Clone(options); - } - - std::optional<size_t> GetTotalByteSize() const override - { - return Underlying_.GetHolder()->GetTotalByteSize(); - } + TMemoryUsageTrackerGuard guard); + + TSharedRangeHolderPtr Clone(const TSharedRangeHolderCloneOptions& options) override; + + std::optional<size_t> GetTotalByteSize() const override; private: const TSharedRef Underlying_; @@ -65,9 +54,9 @@ private: }; YT_DECLARE_SPIN_LOCK(NThreading::TSpinLock, Lock_); - i64 Usage_; i64 Limit_; - i64 TotalUsage_; + i64 Usage_ = 0; + i64 TotalUsage_ = 0; TError DoTryAcquire(i64 size); void DoAcquire(i64 size); |
