mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
Merge #17243: p2p: add PoissonNextSend method that returns mockable time
1a8f0d5a74[tools] update nNextInvSend to use mockable time (Amiti Uttarwar)4de630354f[tools] add PoissonNextSend method that returns mockable time (Amiti Uttarwar) Pull request description: Introduce a Poisson helper method that wraps the existing method to return `std::chrono::duration` type, which is mockable. Needed for https://github.com/bitcoin/bitcoin/pull/16698. ACKs for top commit: ajtowns: ACK1a8f0d5a74MarcoFalke: re-ACK1a8f0d5a74naumenkogs: ACK1a8f0d5, and let's merge it and come back to it later. Tree-SHA512: 7e2325d7c55fc0b4357cb86b83e0c218ba269f678c1786342d8bc380bfd9696373bc24ff124b9ff17a6e761c62b2b44ff5247c3911e2afdc7cc5c20417e8290b
This commit is contained in:
12
src/net.h
12
src/net.h
@@ -808,7 +808,7 @@ public:
|
||||
bool fSendMempool GUARDED_BY(cs_tx_inventory){false};
|
||||
// Last time a "MEMPOOL" request was serviced.
|
||||
std::atomic<std::chrono::seconds> m_last_mempool_req{std::chrono::seconds{0}};
|
||||
int64_t nNextInvSend{0};
|
||||
std::chrono::microseconds nNextInvSend{0};
|
||||
|
||||
CCriticalSection cs_feeFilter;
|
||||
// Minimum fee rate with which to filter inv's to this node
|
||||
@@ -991,11 +991,13 @@ public:
|
||||
void MaybeSetAddrName(const std::string& addrNameIn);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** Return a timestamp in the future (in microseconds) for exponentially distributed events. */
|
||||
int64_t PoissonNextSend(int64_t now, int average_interval_seconds);
|
||||
|
||||
/** Wrapper to return mockable type */
|
||||
inline std::chrono::microseconds PoissonNextSend(std::chrono::microseconds now, std::chrono::seconds average_interval)
|
||||
{
|
||||
return std::chrono::microseconds{PoissonNextSend(now.count(), average_interval.count())};
|
||||
}
|
||||
|
||||
#endif // BITCOIN_NET_H
|
||||
|
||||
Reference in New Issue
Block a user