aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeshCollider <dobsonsa68@gmail.com>2017-08-24 13:45:26 +1200
committerMeshCollider <dobsonsa68@gmail.com>2017-09-07 12:00:30 +1200
commit35aeabec62cf10f3c0de297b1189f0a669b69d6e (patch)
treef30b94218efff39df31876f200f1e25d862eaf27
parent58d91af59e6417ad4dde0c5e1c9bfd18017d755d (diff)
Make fReindex atomic to avoid race
-rw-r--r--src/validation.cpp4
-rw-r--r--src/validation.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index d1a8b8460a..0d4fdf79ab 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -66,7 +66,7 @@ CWaitableCriticalSection csBestBlock;
CConditionVariable cvBlockChange;
int nScriptCheckThreads = 0;
std::atomic_bool fImporting(false);
-bool fReindex = false;
+std::atomic_bool fReindex(false);
bool fTxIndex = false;
bool fHavePruned = false;
bool fPruneMode = false;
@@ -3523,7 +3523,7 @@ bool static LoadBlockIndexDB(const CChainParams& chainparams)
// Check whether we need to continue reindexing
bool fReindexing = false;
pblocktree->ReadReindexing(fReindexing);
- fReindex |= fReindexing;
+ if(fReindexing) fReindex = true;
// Check whether we have a transaction index
pblocktree->ReadFlag("txindex", fTxIndex);
diff --git a/src/validation.h b/src/validation.h
index d0f6cdc135..10511fce31 100644
--- a/src/validation.h
+++ b/src/validation.h
@@ -167,7 +167,7 @@ extern const std::string strMessageMagic;
extern CWaitableCriticalSection csBestBlock;
extern CConditionVariable cvBlockChange;
extern std::atomic_bool fImporting;
-extern bool fReindex;
+extern std::atomic_bool fReindex;
extern int nScriptCheckThreads;
extern bool fTxIndex;
extern bool fIsBareMultisigStd;