Skip to content

Commit ead2bc5

Browse files
committed
thread annotations for ledger state snapshot mutex
1 parent 75d2d52 commit ead2bc5

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

src/ledger/LedgerManagerImpl.h

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,8 @@ class LedgerManagerImpl : public LedgerManager
436436

437437
// Update cached last closed ledger state values managed by this class.
438438
void
439-
advanceLastClosedLedgerState(CompleteConstLedgerStatePtr newLedgerState);
439+
advanceLastClosedLedgerState(CompleteConstLedgerStatePtr newLedgerState)
440+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
440441

441442
// Internal helper for loading last known ledger and an option to skip
442443
// building the 'full' state (including in-memory Soroban state, module
@@ -500,18 +501,26 @@ class LedgerManagerImpl : public LedgerManager
500501
void valueExternalized(LedgerCloseData const& ledgerData,
501502
bool isLatestSlot) override;
502503

503-
uint32_t getLastMaxTxSetSize() const override;
504-
uint32_t getLastMaxTxSetSizeOps() const override;
504+
uint32_t getLastMaxTxSetSize() const override
505+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
506+
uint32_t getLastMaxTxSetSizeOps() const override
507+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
505508
Resource maxLedgerResources(bool isSoroban) override;
506509
Resource maxSorobanTransactionResources() override;
507-
int64_t getLastMinBalance(uint32_t ownerCount) const override;
508-
uint32_t getLastReserve() const override;
509-
uint32_t getLastTxFee() const override;
510-
uint32_t getLastClosedLedgerNum() const override;
510+
int64_t getLastMinBalance(uint32_t ownerCount) const override
511+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
512+
uint32_t getLastReserve() const override
513+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
514+
uint32_t getLastTxFee() const override
515+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
516+
uint32_t getLastClosedLedgerNum() const override
517+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
511518
SorobanNetworkConfig const&
512-
getLastClosedSorobanNetworkConfig() const override;
519+
getLastClosedSorobanNetworkConfig() const override
520+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
513521

514-
bool hasLastClosedSorobanNetworkConfig() const override;
522+
bool hasLastClosedSorobanNetworkConfig() const override
523+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
515524
std::chrono::milliseconds getExpectedLedgerCloseTime() const override;
516525

517526
#ifdef BUILD_TESTS
@@ -537,9 +546,11 @@ class LedgerManagerImpl : public LedgerManager
537546
void loadLastKnownLedger() override;
538547
void partiallyLoadLastKnownLedgerForUtils() override;
539548

540-
LedgerHeaderHistoryEntry const& getLastClosedLedgerHeader() const override;
549+
LedgerHeaderHistoryEntry const& getLastClosedLedgerHeader() const override
550+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
541551

542-
HistoryArchiveState getLastClosedLedgerHAS() const override;
552+
HistoryArchiveState getLastClosedLedgerHAS() const override
553+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
543554

544555
Database& getDatabase() override;
545556

@@ -565,12 +576,15 @@ class LedgerManagerImpl : public LedgerManager
565576
void maybeResetLedgerCloseMetaDebugStream(uint32_t ledgerSeq);
566577

567578
SorobanMetrics& getSorobanMetrics() override;
568-
LedgerStateSnapshot copyLedgerStateSnapshot() const override;
579+
LedgerStateSnapshot copyLedgerStateSnapshot() const override
580+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
569581
ApplyLedgerStateSnapshot copyApplyLedgerStateSnapshot() const override;
570582
void maybeUpdateLedgerStateSnapshot(
571-
LedgerStateSnapshot& snapshot) const override;
583+
LedgerStateSnapshot& snapshot) const override
584+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
572585
#ifdef BUILD_TESTS
573-
void updateCanonicalStateForTesting(LedgerHeader const& header) override;
586+
void updateCanonicalStateForTesting(LedgerHeader const& header) override
587+
LOCKS_EXCLUDED(mLedgerStateSnapshotMutex);
574588
#endif
575589
virtual bool
576590
isApplying() const override

0 commit comments

Comments
 (0)