aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPatrick Strateman <patrick.strateman@gmail.com>2016-05-16 20:33:32 -0700
committerPatrick Strateman <patrick.strateman@gmail.com>2016-05-16 20:33:32 -0700
commit46b0c3b688dccf6ba9ac08cbd6d6981249a73b1a (patch)
treefcc3471f8fbbbcb08c44831e40bd7b36786ba7e1 /src
parentb3e42b6d02e8d19658a9135e427ebceab5367779 (diff)
downloadbitcoin-46b0c3b688dccf6ba9ac08cbd6d6981249a73b1a.tar.xz
Acquire lock to check for genesis block.
Diffstat (limited to 'src')
-rw-r--r--src/init.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/init.cpp b/src/init.cpp
index d19ca530b3..fd1241d930 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -1371,10 +1371,18 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
vImportFiles.push_back(strFile);
}
threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles));
- if (chainActive.Tip() == NULL) {
- LogPrintf("Waiting for genesis block to be imported...\n");
- while (!fRequestShutdown && chainActive.Tip() == NULL)
+
+ // Wait for genesis block to be processed
+ bool fHaveGenesis = false;
+ while (!fHaveGenesis && !fRequestShutdown) {
+ {
+ LOCK(cs_main);
+ fHaveGenesis = (chainActive.Tip() != NULL);
+ }
+
+ if (!fHaveGenesis) {
MilliSleep(10);
+ }
}
// ********************************************************* Step 11: start node