X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fmain.cpp;h=2473662620a8cc5635d167f5063e84fa1f2ba25d;hb=66116c3847eeb3f0619bc084d96f5add41a156c8;hp=e2310b84948d28c294f7cda53022ea4139458b87;hpb=0c3aa881e2ac7a6142fcfcbb9b7d2824532fe522;p=novacoin.git diff --git a/src/main.cpp b/src/main.cpp index e2310b8..2473662 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2141,7 +2141,18 @@ bool static AlreadyHave(CTxDB& txdb, const CInv& inv) { switch (inv.type) { - case MSG_TX: return mapTransactions.count(inv.hash) || mapOrphanTransactions.count(inv.hash) || txdb.ContainsTx(inv.hash); + case MSG_TX: + { + bool txInMap = false; + CRITICAL_BLOCK(cs_mapTransactions) + { + txInMap = (mapTransactions.count(inv.hash) != 0); + } + return txInMap || + mapOrphanTransactions.count(inv.hash) || + txdb.ContainsTx(inv.hash); + } + case MSG_BLOCK: return mapBlockIndex.count(inv.hash) || mapOrphanBlocks.count(inv.hash); } // Don't know what it is, just say we already got one @@ -2806,7 +2817,7 @@ bool ProcessMessages(CNode* pfrom) bool SendMessages(CNode* pto, bool fSendTrickle) { - CRITICAL_BLOCK(cs_main) + TRY_CRITICAL_BLOCK(cs_main) { // Don't send anything until we get their version message if (pto->nVersion == 0)