diff options
author | practicalswift <practicalswift@users.noreply.github.com> | 2018-10-08 15:17:18 +0200 |
---|---|---|
committer | practicalswift <practicalswift@users.noreply.github.com> | 2018-12-02 21:18:04 +0100 |
commit | 9a789d4dc63b4c5feb053fbc0a04d1fb41fd3720 (patch) | |
tree | f305a915a64add83e2a2ec1b15092ceb470d9fa4 | |
parent | ed12fd83ca7999a896350197533de5e9202bc2fe (diff) |
policy: Add Clang thread safety annotations for variables guarded by cs_feeEstimator
-rw-r--r-- | src/policy/fees.h | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/policy/fees.h b/src/policy/fees.h index 90f159b48c..d3deff9b92 100644 --- a/src/policy/fees.h +++ b/src/policy/fees.h @@ -228,10 +228,12 @@ public: unsigned int HighestTargetTracked(FeeEstimateHorizon horizon) const; private: - unsigned int nBestSeenHeight; - unsigned int firstRecordedHeight; - unsigned int historicalFirst; - unsigned int historicalBest; + mutable CCriticalSection cs_feeEstimator; + + unsigned int nBestSeenHeight GUARDED_BY(cs_feeEstimator); + unsigned int firstRecordedHeight GUARDED_BY(cs_feeEstimator); + unsigned int historicalFirst GUARDED_BY(cs_feeEstimator); + unsigned int historicalBest GUARDED_BY(cs_feeEstimator); struct TxStatsInfo { @@ -241,34 +243,32 @@ private: }; // map of txids to information about that transaction - std::map<uint256, TxStatsInfo> mapMemPoolTxs; + std::map<uint256, TxStatsInfo> mapMemPoolTxs GUARDED_BY(cs_feeEstimator); /** Classes to track historical data on transaction confirmations */ std::unique_ptr<TxConfirmStats> feeStats; std::unique_ptr<TxConfirmStats> shortStats; std::unique_ptr<TxConfirmStats> longStats; - unsigned int trackedTxs; - unsigned int untrackedTxs; + unsigned int trackedTxs GUARDED_BY(cs_feeEstimator); + unsigned int untrackedTxs GUARDED_BY(cs_feeEstimator); - std::vector<double> buckets; // The upper-bound of the range for the bucket (inclusive) - std::map<double, unsigned int> bucketMap; // Map of bucket upper-bound to index into all vectors by bucket - - mutable CCriticalSection cs_feeEstimator; + std::vector<double> buckets GUARDED_BY(cs_feeEstimator); // The upper-bound of the range for the bucket (inclusive) + std::map<double, unsigned int> bucketMap GUARDED_BY(cs_feeEstimator); // Map of bucket upper-bound to index into all vectors by bucket /** Process a transaction confirmed in a block*/ - bool processBlockTx(unsigned int nBlockHeight, const CTxMemPoolEntry* entry); + bool processBlockTx(unsigned int nBlockHeight, const CTxMemPoolEntry* entry) EXCLUSIVE_LOCKS_REQUIRED(cs_feeEstimator); /** Helper for estimateSmartFee */ - double estimateCombinedFee(unsigned int confTarget, double successThreshold, bool checkShorterHorizon, EstimationResult *result) const; + double estimateCombinedFee(unsigned int confTarget, double successThreshold, bool checkShorterHorizon, EstimationResult *result) const EXCLUSIVE_LOCKS_REQUIRED(cs_feeEstimator); /** Helper for estimateSmartFee */ - double estimateConservativeFee(unsigned int doubleTarget, EstimationResult *result) const; + double estimateConservativeFee(unsigned int doubleTarget, EstimationResult *result) const EXCLUSIVE_LOCKS_REQUIRED(cs_feeEstimator); /** Number of blocks of data recorded while fee estimates have been running */ - unsigned int BlockSpan() const; + unsigned int BlockSpan() const EXCLUSIVE_LOCKS_REQUIRED(cs_feeEstimator); /** Number of blocks of recorded fee estimate data represented in saved data file */ - unsigned int HistoricalBlockSpan() const; + unsigned int HistoricalBlockSpan() const EXCLUSIVE_LOCKS_REQUIRED(cs_feeEstimator); /** Calculation of highest target that reasonable estimate can be provided for */ - unsigned int MaxUsableEstimate() const; + unsigned int MaxUsableEstimate() const EXCLUSIVE_LOCKS_REQUIRED(cs_feeEstimator); }; class FeeFilterRounder |