diff options
| author | Wladimir J. van der Laan <[email protected]> | 2014-07-15 16:26:16 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2014-07-15 16:27:47 +0200 |
| commit | 33357b27a0f6e344e760caf87e96b577b4c25ad7 (patch) | |
| tree | 94d93c0701f25d22a1b205f79cb2fcde0a9091c7 /src/qt/bitcoin.cpp | |
| parent | ui: Replace some LogPrintfs with qDebug() (diff) | |
| download | discoin-33357b27a0f6e344e760caf87e96b577b4c25ad7.tar.xz discoin-33357b27a0f6e344e760caf87e96b577b4c25ad7.zip | |
qt: Start core thread only when needed
Start the core thread only when needed for initialization
or shutdown.
Avoids a bit of overhead, and also avoids spamming two
log messages before logging is properly initialized.
Diffstat (limited to 'src/qt/bitcoin.cpp')
| -rw-r--r-- | src/qt/bitcoin.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 6b1e50922..43466663f 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -286,15 +286,17 @@ BitcoinApplication::BitcoinApplication(int &argc, char **argv): returnValue(0) { setQuitOnLastWindowClosed(false); - startThread(); } BitcoinApplication::~BitcoinApplication() { - qDebug() << __func__ << ": Stopping thread"; - emit stopThread(); - coreThread->wait(); - qDebug() << __func__ << ": Stopped thread"; + if(coreThread) + { + qDebug() << __func__ << ": Stopping thread"; + emit stopThread(); + coreThread->wait(); + qDebug() << __func__ << ": Stopped thread"; + } delete window; window = 0; @@ -337,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); @@ -357,12 +361,14 @@ void BitcoinApplication::startThread() void BitcoinApplication::requestInitialize() { qDebug() << __func__ << ": Requesting initialize"; + startThread(); emit requestedInitialize(); } void BitcoinApplication::requestShutdown() { qDebug() << __func__ << ": Requesting shutdown"; + startThread(); window->hide(); window->setClientModel(0); pollShutdownTimer->stop(); |