@@ -55,7 +55,24 @@ BucketSnapshotManager::BucketSnapshotManager(
55
55
SearchableSnapshotConstPtr
56
56
BucketSnapshotManager::copySearchableLiveBucketListSnapshot () const
57
57
{
58
- // SharedLockShared guard(mSnapshotMutex);
58
+ SharedLockShared guard (mSnapshotMutex );
59
+ // Can't use std::make_shared due to private constructor
60
+ return copySearchableLiveBucketListSnapshot (guard);
61
+ }
62
+
63
+ SearchableHotArchiveSnapshotConstPtr
64
+ BucketSnapshotManager::copySearchableHotArchiveBucketListSnapshot () const
65
+ {
66
+ SharedLockShared guard (mSnapshotMutex );
67
+ releaseAssert (mCurrHotArchiveSnapshot );
68
+ // Can't use std::make_shared due to private constructor
69
+ return copySearchableHotArchiveBucketListSnapshot (guard);
70
+ }
71
+
72
+ SearchableSnapshotConstPtr
73
+ BucketSnapshotManager::copySearchableLiveBucketListSnapshot (
74
+ SharedLockShared const & guard) const
75
+ {
59
76
// Can't use std::make_shared due to private constructor
60
77
return std::shared_ptr<SearchableLiveBucketListSnapshot>(
61
78
new SearchableLiveBucketListSnapshot (
@@ -66,9 +83,9 @@ BucketSnapshotManager::copySearchableLiveBucketListSnapshot() const
66
83
}
67
84
68
85
SearchableHotArchiveSnapshotConstPtr
69
- BucketSnapshotManager::copySearchableHotArchiveBucketListSnapshot () const
86
+ BucketSnapshotManager::copySearchableHotArchiveBucketListSnapshot (
87
+ SharedLockShared const & guard) const
70
88
{
71
- // SharedLockShared guard(mSnapshotMutex);
72
89
releaseAssert (mCurrHotArchiveSnapshot );
73
90
// Can't use std::make_shared due to private constructor
74
91
return std::shared_ptr<SearchableHotArchiveBucketListSnapshot>(
@@ -90,7 +107,7 @@ BucketSnapshotManager::maybeCopySearchableBucketListSnapshot(
90
107
if (!snapshot ||
91
108
snapshot->getLedgerSeq () < mCurrLiveSnapshot ->getLedgerSeq ())
92
109
{
93
- snapshot = copySearchableLiveBucketListSnapshot ();
110
+ snapshot = copySearchableLiveBucketListSnapshot (guard );
94
111
}
95
112
}
96
113
@@ -106,7 +123,7 @@ BucketSnapshotManager::maybeCopySearchableHotArchiveBucketListSnapshot(
106
123
if (!snapshot ||
107
124
snapshot->getLedgerSeq () < mCurrHotArchiveSnapshot ->getLedgerSeq ())
108
125
{
109
- snapshot = copySearchableHotArchiveBucketListSnapshot ();
126
+ snapshot = copySearchableHotArchiveBucketListSnapshot (guard );
110
127
}
111
128
}
112
129
0 commit comments