aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2012-12-12 09:10:44 -0800
committerGavin Andresen <gavinandresen@gmail.com>2012-12-12 09:10:44 -0800
commit8b83e2fc2e7440c49902babc7d89b629f8651ad8 (patch)
treecec7b380453644d70fe67c5af0e370d19fb72bbf
parent59b8a869ab5c2b84ecd8f8624a955438b5f8679f (diff)
parent3fb9b99cca390e8ac5838c03363c46a99396e463 (diff)
Merge pull request #2074 from sipa/minor
Two minor inconvenience fixes
-rw-r--r--src/init.cpp8
-rw-r--r--src/main.cpp8
-rw-r--r--src/util.cpp2
-rw-r--r--src/util.h2
4 files changed, 12 insertions, 8 deletions
diff --git a/src/init.cpp b/src/init.cpp
index a224b336ce..b68ca1cf1a 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -345,7 +345,7 @@ void ThreadImport(void *data) {
if (fReindex) {
CImportingNow imp;
int nFile = 0;
- while (!fShutdown) {
+ while (!fRequestShutdown) {
CDiskBlockPos pos(nFile, 0);
FILE *file = OpenBlockFile(pos, true);
if (!file)
@@ -354,7 +354,7 @@ void ThreadImport(void *data) {
LoadExternalBlockFile(file, &pos);
nFile++;
}
- if (!fShutdown) {
+ if (!fRequestShutdown) {
pblocktree->WriteReindexing(false);
fReindex = false;
printf("Reindexing finished\n");
@@ -363,7 +363,7 @@ void ThreadImport(void *data) {
// hardcoded $DATADIR/bootstrap.dat
filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
- if (filesystem::exists(pathBootstrap) && !fShutdown) {
+ if (filesystem::exists(pathBootstrap) && !fRequestShutdown) {
FILE *file = fopen(pathBootstrap.string().c_str(), "rb");
if (file) {
CImportingNow imp;
@@ -376,7 +376,7 @@ void ThreadImport(void *data) {
// -loadblock=
BOOST_FOREACH(boost::filesystem::path &path, import->vFiles) {
- if (fShutdown)
+ if (fRequestShutdown)
break;
FILE *file = fopen(path.string().c_str(), "rb");
if (file) {
diff --git a/src/main.cpp b/src/main.cpp
index 8edc25c789..177dbfe0c8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1240,9 +1240,12 @@ bool ConnectBestBlock() {
if (pindexTest->pprev == NULL || pindexTest->pnext != NULL) {
reverse(vAttach.begin(), vAttach.end());
- BOOST_FOREACH(CBlockIndex *pindexSwitch, vAttach)
+ BOOST_FOREACH(CBlockIndex *pindexSwitch, vAttach) {
+ if (fRequestShutdown)
+ break;
if (!SetBestChain(pindexSwitch))
return false;
+ }
return true;
}
pindexTest = pindexTest->pprev;
@@ -1897,6 +1900,7 @@ bool FindBlockPos(CDiskBlockPos &pos, unsigned int nAddSize, unsigned int nHeigh
nLastBlockFile = pos.nFile;
infoLastBlockFile.SetNull();
pblocktree->ReadBlockFileInfo(nLastBlockFile, infoLastBlockFile);
+ fUpdatedLast = true;
}
} else {
while (infoLastBlockFile.nSize + nAddSize >= MAX_BLOCKFILE_SIZE) {
@@ -2556,7 +2560,7 @@ bool LoadExternalBlockFile(FILE* fileIn, CDiskBlockPos *dbp)
}
}
uint64 nRewind = blkdat.GetPos();
- while (blkdat.good() && !blkdat.eof() && !fShutdown) {
+ while (blkdat.good() && !blkdat.eof() && !fRequestShutdown) {
blkdat.SetPos(nRewind);
nRewind++; // start one byte further next time, in case of failure
blkdat.SetLimit(); // remove former limit
diff --git a/src/util.cpp b/src/util.cpp
index bd8ad8acd0..3cbc6b196b 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -64,7 +64,7 @@ bool fDebug = false;
bool fDebugNet = false;
bool fPrintToConsole = false;
bool fPrintToDebugger = false;
-bool fRequestShutdown = false;
+volatile bool fRequestShutdown = false;
bool fShutdown = false;
bool fDaemon = false;
bool fServer = false;
diff --git a/src/util.h b/src/util.h
index ada0dd3790..d8203b58ee 100644
--- a/src/util.h
+++ b/src/util.h
@@ -132,7 +132,7 @@ extern bool fDebug;
extern bool fDebugNet;
extern bool fPrintToConsole;
extern bool fPrintToDebugger;
-extern bool fRequestShutdown;
+extern volatile bool fRequestShutdown;
extern bool fShutdown;
extern bool fDaemon;
extern bool fServer;