diff options
| author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-05-18 09:38:38 +0100 |
|---|---|---|
| committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-05-18 09:39:56 +0100 |
| commit | 16e209e08dcb0e8ee49115071809e6540dc57ec1 (patch) | |
| tree | 5348f86bc1b9917a3cdc108f0795a3b11cf0ee37 | |
| parent | 4b728d7dd48584987f53995a141baac4f886f017 (diff) | |
| download | monzero-core-16e209e08dcb0e8ee49115071809e6540dc57ec1.tar.gz monzero-core-16e209e08dcb0e8ee49115071809e6540dc57ec1.tar.xz monzero-core-16e209e08dcb0e8ee49115071809e6540dc57ec1.zip | |
core: lock incoming tx lock when checking the txpool and chain
This gets rid of an innocuous race trying to add the same tx
twice to the txpool
| -rw-r--r-- | src/cryptonote_core/cryptonote_core.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp index ce75f74d8..d723d3567 100644 --- a/src/cryptonote_core/cryptonote_core.cpp +++ b/src/cryptonote_core/cryptonote_core.cpp @@ -675,6 +675,7 @@ namespace cryptonote bool core::handle_incoming_txs(const std::list<blobdata>& tx_blobs, std::vector<tx_verification_context>& tvc, bool keeped_by_block, bool relayed, bool do_not_relay) { TRY_ENTRY(); + CRITICAL_REGION_LOCAL(m_incoming_tx_lock); struct result { bool res; cryptonote::transaction tx; crypto::hash hash; crypto::hash prefix_hash; bool in_txpool; bool in_blockchain; }; std::vector<result> results(tx_blobs.size()); |
