File tree Expand file tree Collapse file tree 2 files changed +9
-4
lines changed Expand file tree Collapse file tree 2 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -1696,6 +1696,8 @@ error_code RdbLoader::Load(io::Source* src) {
16961696 settings.now = mstime ();
16971697 size_t keys_loaded = 0 ;
16981698
1699+ auto cleanup = absl::Cleanup ([&] { FinishLoad (start, &keys_loaded); });
1700+
16991701 while (!stop_early_.load (memory_order_relaxed)) {
17001702 /* Read type. */
17011703 SET_OR_RETURN (FetchType (), type);
@@ -1814,6 +1816,10 @@ error_code RdbLoader::Load(io::Source* src) {
18141816 /* Verify the checksum if RDB version is >= 5 */
18151817 RETURN_ON_ERR (VerifyChecksum ());
18161818
1819+ return kOk ;
1820+ }
1821+
1822+ void RdbLoader::FinishLoad (absl::Time start_time, size_t * keys_loaded) {
18171823 fibers_ext::BlockingCounter bc (shard_set->size ());
18181824 for (unsigned i = 0 ; i < shard_set->size (); ++i) {
18191825 // Flush the remaining items.
@@ -1824,11 +1830,9 @@ error_code RdbLoader::Load(io::Source* src) {
18241830 }
18251831 bc.Wait (); // wait for sentinels to report.
18261832
1827- absl::Duration dur = absl::Now () - start ;
1833+ absl::Duration dur = absl::Now () - start_time ;
18281834 load_time_ = double (absl::ToInt64Milliseconds (dur)) / 1000 ;
1829- keys_loaded_ = keys_loaded;
1830-
1831- return kOk ;
1835+ keys_loaded_ = *keys_loaded;
18321836}
18331837
18341838std::error_code RdbLoaderBase::EnsureRead (size_t min_sz) {
Original file line number Diff line number Diff line change @@ -202,6 +202,7 @@ class RdbLoader : protected RdbLoaderBase {
202202
203203 std::error_code VerifyChecksum ();
204204 void FlushShardAsync (ShardId sid);
205+ void FinishLoad (absl::Time start_time, size_t * keys_loaded);
205206
206207 void LoadItemsBuffer (DbIndex db_ind, const ItemsBuf& ib);
207208
You can’t perform that action at this time.
0 commit comments