diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2012-10-22 22:45:26 +0200 |
---|---|---|
committer | Pieter Wuille <pieter.wuille@gmail.com> | 2012-11-09 01:06:32 +0100 |
commit | 7a5b7535bf3b987c5e2157f25c8b3246033d952e (patch) | |
tree | 540a9fc5dd1996546818a10f9e61e02cbccf5c31 /src/init.cpp | |
parent | 05d9726805969ff155e8a029579113f05529ea82 (diff) |
Move ThreadImport to init.cpp
Diffstat (limited to 'src/init.cpp')
-rw-r--r-- | src/init.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/init.cpp b/src/init.cpp index 8151fb2a86..6fa8586426 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -310,6 +310,50 @@ std::string HelpMessage() } +struct CImportingNow +{ + CImportingNow() { + assert(fImporting == false); + fImporting = true; + } + + ~CImportingNow() { + assert(fImporting == true); + fImporting = false; + } +}; + +void ThreadImport(void *data) { + std::vector<boost::filesystem::path> *vFiles = reinterpret_cast<std::vector<boost::filesystem::path>*>(data); + + RenameThread("bitcoin-loadblk"); + + CImportingNow imp; + vnThreadsRunning[THREAD_IMPORT]++; + + // -loadblock= + BOOST_FOREACH(boost::filesystem::path &path, *vFiles) { + FILE *file = fopen(path.string().c_str(), "rb"); + if (file) + LoadExternalBlockFile(file); + } + + // hardcoded $DATADIR/bootstrap.dat + filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat"; + if (filesystem::exists(pathBootstrap)) { + FILE *file = fopen(pathBootstrap.string().c_str(), "rb"); + if (file) { + filesystem::path pathBootstrapOld = GetDataDir() / "bootstrap.dat.old"; + LoadExternalBlockFile(file); + RenameOver(pathBootstrap, pathBootstrapOld); + } + } + + delete vFiles; + + vnThreadsRunning[THREAD_IMPORT]--; +} + /** Initialize bitcoin. * @pre Parameters should be parsed and config file should be read. */ |