aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-07-17 13:42:25 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2014-07-17 13:51:55 +0200
commit66f3d0679fc787f14738db9685fbc3a9cbfd4ffb (patch)
treed0ee838655c0f402aa12300672861cf3c7cc64fd
parent00b16bc9428e2008fd03c1cea6327d9278535ef3 (diff)
parent33357b27a0f6e344e760caf87e96b577b4c25ad7 (diff)
Merge pull request #4534
33357b2 qt: Start core thread only when needed (Wladimir J. van der Laan) c715ff5 ui: Replace some LogPrintfs with qDebug() (Wladimir J. van der Laan) 96ff9d6 Can't log to debug log before chain params initialized (Wladimir J. van der Laan)
-rw-r--r--src/chainparamsbase.cpp4
-rw-r--r--src/chainparamsbase.h6
-rw-r--r--src/qt/bitcoin.cpp31
-rw-r--r--src/util.cpp2
4 files changed, 30 insertions, 13 deletions
diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp
index 19a9e72cc9..720e24c4a8 100644
--- a/src/chainparamsbase.cpp
+++ b/src/chainparamsbase.cpp
@@ -91,3 +91,7 @@ bool SelectBaseParamsFromCommandLine() {
}
return true;
}
+
+bool AreBaseParamsConfigured() {
+ return pCurrentBaseParams != NULL;
+}
diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h
index 4a3b268909..4398f69548 100644
--- a/src/chainparamsbase.h
+++ b/src/chainparamsbase.h
@@ -49,4 +49,10 @@ void SelectBaseParams(CBaseChainParams::Network network);
*/
bool SelectBaseParamsFromCommandLine();
+/**
+ * Return true if SelectBaseParamsFromCommandLine() has been called to select
+ * a network.
+ */
+bool AreBaseParamsConfigured();
+
#endif
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index 7c4af25edf..43466663fa 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -34,6 +34,7 @@
#include <boost/filesystem/operations.hpp>
#include <QApplication>
+#include <QDebug>
#include <QLibraryInfo>
#include <QLocale>
#include <QMessageBox>
@@ -237,7 +238,7 @@ void BitcoinCore::initialize()
{
try
{
- LogPrintf("Running AppInit2 in thread\n");
+ qDebug() << __func__ << ": Running AppInit2 in thread";
int rv = AppInit2(threadGroup);
if(rv)
{
@@ -258,11 +259,11 @@ void BitcoinCore::shutdown()
{
try
{
- LogPrintf("Running Shutdown in thread\n");
+ qDebug() << __func__ << ": Running Shutdown in thread";
threadGroup.interrupt_all();
threadGroup.join_all();
Shutdown();
- LogPrintf("Shutdown finished\n");
+ qDebug() << __func__ << ": Shutdown finished";
emit shutdownResult(1);
} catch (std::exception& e) {
handleRunawayException(&e);
@@ -285,15 +286,17 @@ BitcoinApplication::BitcoinApplication(int &argc, char **argv):
returnValue(0)
{
setQuitOnLastWindowClosed(false);
- startThread();
}
BitcoinApplication::~BitcoinApplication()
{
- LogPrintf("Stopping thread\n");
- emit stopThread();
- coreThread->wait();
- LogPrintf("Stopped thread\n");
+ if(coreThread)
+ {
+ qDebug() << __func__ << ": Stopping thread";
+ emit stopThread();
+ coreThread->wait();
+ qDebug() << __func__ << ": Stopped thread";
+ }
delete window;
window = 0;
@@ -336,6 +339,8 @@ void BitcoinApplication::createSplashScreen(bool isaTestNet)
void BitcoinApplication::startThread()
{
+ if(coreThread)
+ return;
coreThread = new QThread(this);
BitcoinCore *executor = new BitcoinCore();
executor->moveToThread(coreThread);
@@ -355,13 +360,15 @@ void BitcoinApplication::startThread()
void BitcoinApplication::requestInitialize()
{
- LogPrintf("Requesting initialize\n");
+ qDebug() << __func__ << ": Requesting initialize";
+ startThread();
emit requestedInitialize();
}
void BitcoinApplication::requestShutdown()
{
- LogPrintf("Requesting shutdown\n");
+ qDebug() << __func__ << ": Requesting shutdown";
+ startThread();
window->hide();
window->setClientModel(0);
pollShutdownTimer->stop();
@@ -383,7 +390,7 @@ void BitcoinApplication::requestShutdown()
void BitcoinApplication::initializeResult(int retval)
{
- LogPrintf("Initialization result: %i\n", retval);
+ qDebug() << __func__ << ": Initialization result: " << retval;
// Set exit result: 0 if successful, 1 if failure
returnValue = retval ? 0 : 1;
if(retval)
@@ -438,7 +445,7 @@ void BitcoinApplication::initializeResult(int retval)
void BitcoinApplication::shutdownResult(int retval)
{
- LogPrintf("Shutdown result: %i\n", retval);
+ qDebug() << __func__ << ": Shutdown result: " << retval;
quit(); // Exit main loop after shutdown finished
}
diff --git a/src/util.cpp b/src/util.cpp
index ce31619eca..d3fa5182f3 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -205,7 +205,7 @@ int LogPrintStr(const std::string &str)
// print to console
ret = fwrite(str.data(), 1, str.size(), stdout);
}
- else if (fPrintToDebugLog)
+ else if (fPrintToDebugLog && AreBaseParamsConfigured())
{
static bool fStartedNewLine = true;
boost::call_once(&DebugPrintInit, debugPrintInitFlag);