mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 06:52:36 +01:00
Fix nNextResend data race in ResubmitWalletTransactions
This commit is contained in:
parent
9f650062fc
commit
fad61573ed
2 changed files with 4 additions and 4 deletions
|
@ -1907,7 +1907,7 @@ std::set<uint256> CWallet::GetTxConflicts(const CWalletTx& wtx) const
|
||||||
// mempool to relay them. On startup, we will do this for all unconfirmed
|
// mempool to relay them. On startup, we will do this for all unconfirmed
|
||||||
// transactions but will not ask the mempool to relay them. We do this on startup
|
// transactions but will not ask the mempool to relay them. We do this on startup
|
||||||
// to ensure that our own mempool is aware of our transactions, and to also
|
// to ensure that our own mempool is aware of our transactions, and to also
|
||||||
// initialize nNextResend so that the actual rebroadcast is scheduled. There
|
// initialize m_next_resend so that the actual rebroadcast is scheduled. There
|
||||||
// is a privacy side effect here as not broadcasting on startup also means that we won't
|
// is a privacy side effect here as not broadcasting on startup also means that we won't
|
||||||
// inform the world of our wallet's state, particularly if the wallet (or node) is not
|
// inform the world of our wallet's state, particularly if the wallet (or node) is not
|
||||||
// yet synced.
|
// yet synced.
|
||||||
|
@ -1941,9 +1941,9 @@ void CWallet::ResubmitWalletTransactions(bool relay, bool force)
|
||||||
|
|
||||||
// Do this infrequently and randomly to avoid giving away
|
// Do this infrequently and randomly to avoid giving away
|
||||||
// that these are our transactions.
|
// that these are our transactions.
|
||||||
if (!force && GetTime() < nNextResend) return;
|
if (!force && GetTime() < m_next_resend) return;
|
||||||
// resend 12-36 hours from now, ~1 day on average.
|
// resend 12-36 hours from now, ~1 day on average.
|
||||||
nNextResend = GetTime() + (12 * 60 * 60) + GetRand(24 * 60 * 60);
|
m_next_resend = GetTime() + (12 * 60 * 60) + GetRand(24 * 60 * 60);
|
||||||
|
|
||||||
int submitted_tx_count = 0;
|
int submitted_tx_count = 0;
|
||||||
|
|
||||||
|
|
|
@ -250,7 +250,7 @@ private:
|
||||||
int nWalletVersion GUARDED_BY(cs_wallet){FEATURE_BASE};
|
int nWalletVersion GUARDED_BY(cs_wallet){FEATURE_BASE};
|
||||||
|
|
||||||
/** The next scheduled rebroadcast of wallet transactions. */
|
/** The next scheduled rebroadcast of wallet transactions. */
|
||||||
int64_t nNextResend = 0;
|
std::atomic<int64_t> m_next_resend{};
|
||||||
/** Whether this wallet will submit newly created transactions to the node's mempool and
|
/** Whether this wallet will submit newly created transactions to the node's mempool and
|
||||||
* prompt rebroadcasts (see ResendWalletTransactions()). */
|
* prompt rebroadcasts (see ResendWalletTransactions()). */
|
||||||
bool fBroadcastTransactions = false;
|
bool fBroadcastTransactions = false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue