Index: chromecast/crash/linux/synchronized_minidump_manager.cc |
diff --git a/chromecast/crash/linux/synchronized_minidump_manager.cc b/chromecast/crash/linux/synchronized_minidump_manager.cc |
index a3322124bd5b4c6d2daed8f6f719eec6ed745162..edde6a7171f5e076052b01430771c5a13c7f2b1b 100644 |
--- a/chromecast/crash/linux/synchronized_minidump_manager.cc |
+++ b/chromecast/crash/linux/synchronized_minidump_manager.cc |
@@ -122,16 +122,6 @@ int SetRatelimitPeriodDumps(base::Value* metadata, int period_dumps) { |
return 0; |
} |
-// Increment the number of dumps in the current ratelimit period in deserialized |
-// |metadata| by |increment|. Returns 0 on success, < 0 on error. |
-int IncrementCurrentPeriodDumps(base::Value* metadata, int increment) { |
- DCHECK_GE(increment, 0); |
- int last_dumps = GetRatelimitPeriodDumps(metadata); |
- RCHECK(last_dumps >= 0, -1); |
- |
- return SetRatelimitPeriodDumps(metadata, last_dumps + increment); |
-} |
- |
// Returns true if |metadata| contains valid metadata, false otherwise. |
bool ValidateMetadata(base::Value* metadata) { |
RCHECK(metadata, false); |
@@ -147,8 +137,6 @@ bool ValidateMetadata(base::Value* metadata) { |
} // namespace |
-const int SynchronizedMinidumpManager::kMaxLockfileDumps = 5; |
- |
// One day |
const int SynchronizedMinidumpManager::kRatelimitPeriodSeconds = 24 * 3600; |
const int SynchronizedMinidumpManager::kRatelimitPeriodMaxDumps = 100; |
@@ -338,12 +326,6 @@ int SynchronizedMinidumpManager::AddEntryToLockFile(const DumpInfo& dump_info) { |
return -1; |
} |
- if (!CanWriteDumps(1)) { |
- LOG(ERROR) << "Can't Add Dump: Ratelimited"; |
- return -1; |
- } |
- |
- IncrementCurrentPeriodDumps(metadata_.get(), 1); |
dumps_->Append(dump_info.GetAsValue()); |
return 0; |
@@ -391,14 +373,15 @@ int SynchronizedMinidumpManager::SetCurrentDumps( |
return 0; |
} |
-bool SynchronizedMinidumpManager::CanWriteDumps(int num_dumps) { |
- const auto dumps(GetDumps()); |
+int SynchronizedMinidumpManager::IncrementNumDumpsInCurrentPeriod() { |
+ DCHECK(metadata_); |
+ int last_dumps = GetRatelimitPeriodDumps(metadata_.get()); |
+ RCHECK(last_dumps >= 0, -1); |
- // If no more dumps can be written, return false. |
- if (static_cast<int>(dumps.size()) + num_dumps > kMaxLockfileDumps) |
- return false; |
+ return SetRatelimitPeriodDumps(metadata_.get(), last_dumps + 1); |
+} |
- // If too many dumps have been written recently, return false. |
+bool SynchronizedMinidumpManager::CanUploadDump() { |
time_t cur_time = time(nullptr); |
time_t period_start = GetRatelimitPeriodStart(metadata_.get()); |
int period_dumps_count = GetRatelimitPeriodDumps(metadata_.get()); |
@@ -417,7 +400,7 @@ bool SynchronizedMinidumpManager::CanWriteDumps(int num_dumps) { |
SetRatelimitPeriodDumps(metadata_.get(), period_dumps_count); |
} |
- return period_dumps_count + num_dumps <= kRatelimitPeriodMaxDumps; |
+ return period_dumps_count < kRatelimitPeriodMaxDumps; |
} |
} // namespace chromecast |