diff options
author | Luke Dashjr <luke-jr+git@utopios.org> | 2012-06-14 18:21:07 +0000 |
---|---|---|
committer | Luke Dashjr <luke-jr+git@utopios.org> | 2012-06-14 18:21:07 +0000 |
commit | 5e322a72f94e3c759bb37cec37d8c066766b6072 (patch) | |
tree | 1f90145c9e1964685a62a3011b6811fe5e896ede | |
parent | 8f0c0c16d384510b07aec3ca2dde2391429f1b0b (diff) | |
parent | 6ec9d30905e8df77e60d0195074920271abb977a (diff) |
Merge branch '0.6.0.x' into 0.6.x
Conflicts:
.gitignore
src/bitcoinrpc.cpp
src/main.cpp
src/qt/bitcoingui.cpp
src/ui_interface.h
src/util.cpp
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | contrib/debian/control | 4 | ||||
-rw-r--r-- | contrib/gitian-downloader/linux-download-config | 2 | ||||
-rw-r--r-- | contrib/gitian-downloader/win32-download-config | 2 | ||||
-rw-r--r-- | doc/build-unix.txt | 2 | ||||
-rw-r--r-- | doc/release-process.txt | 2 | ||||
-rw-r--r-- | src/bitcoinrpc.cpp | 8 | ||||
-rw-r--r-- | src/init.cpp | 14 | ||||
-rw-r--r-- | src/init.h | 1 | ||||
-rw-r--r-- | src/main.cpp | 2 | ||||
-rw-r--r-- | src/net.cpp | 4 | ||||
-rw-r--r-- | src/qt/addressbookpage.cpp | 5 | ||||
-rw-r--r-- | src/qt/bitcoin.cpp | 1 | ||||
-rw-r--r-- | src/qt/bitcoingui.cpp | 2 | ||||
-rw-r--r-- | src/qt/forms/overviewpage.ui | 4 | ||||
-rw-r--r-- | src/test/test_bitcoin.cpp | 6 | ||||
-rw-r--r-- | src/util.cpp | 3 |
17 files changed, 42 insertions, 21 deletions
diff --git a/.gitignore b/.gitignore index fe93caafbf..2b70e2cca5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ src/*.exe src/bitcoin src/bitcoind +src/test_bitcoin src/build.h .*.swp *.*~* diff --git a/contrib/debian/control b/contrib/debian/control index 745fd71ea8..b81c02ec1a 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -35,7 +35,7 @@ Description: peer-to-peer network based digital currency - daemon By default connects to an IRC network to discover other peers. . Full transaction history is stored locally at each client. This - requires 150+ MB of space, slowly growing. + requires 2+ GB of space, slowly growing. . This package provides bitcoind, a combined daemon and CLI tool to interact with the daemon. @@ -53,6 +53,6 @@ Description: peer-to-peer network based digital currency - QT GUI By default connects to an IRC network to discover other peers. . Full transaction history is stored locally at each client. This - requires 150+ MB of space, slowly growing. + requires 2+ GB of space, slowly growing. . This package provides bitcoin-qt, a GUI for Bitcoin based on QT. diff --git a/contrib/gitian-downloader/linux-download-config b/contrib/gitian-downloader/linux-download-config index 88e48e2c23..aef614d0ca 100644 --- a/contrib/gitian-downloader/linux-download-config +++ b/contrib/gitian-downloader/linux-download-config @@ -31,7 +31,7 @@ signers: weight: 40 name: "Gavin Andresen" key: gavinandresen - 71A3B16735405025D447E8F274810B012346C9A6 + 71A3B16735405025D447E8F274810B012346C9A6: weight: 40 name: "Wladimir J. van der Laan" key: laanwj diff --git a/contrib/gitian-downloader/win32-download-config b/contrib/gitian-downloader/win32-download-config index 595626f28f..0f7032e643 100644 --- a/contrib/gitian-downloader/win32-download-config +++ b/contrib/gitian-downloader/win32-download-config @@ -31,7 +31,7 @@ signers: weight: 40 name: "Gavin Andresen" key: gavinandresen - 71A3B16735405025D447E8F274810B012346C9A6 + 71A3B16735405025D447E8F274810B012346C9A6: weight: 40 name: "Wladimir J. van der Laan" key: laanwj diff --git a/doc/build-unix.txt b/doc/build-unix.txt index a9bc551d3c..f93ddcd969 100644 --- a/doc/build-unix.txt +++ b/doc/build-unix.txt @@ -33,7 +33,7 @@ Dependencies miniupnpc may be used for UPnP port mapping. It can be downloaded from http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and turned off by default. Set USE_UPNP to a different value to control this: - USE_UPNP= No UPnP support - miniupnp not required + USE_UPNP=- No UPnP support - miniupnp not required USE_UPNP=0 (the default) UPnP support turned off by default at runtime USE_UPNP=1 UPnP support turned on by default at runtime diff --git a/doc/release-process.txt b/doc/release-process.txt index 00fafa4818..ed23ef3505 100644 --- a/doc/release-process.txt +++ b/doc/release-process.txt @@ -98,6 +98,8 @@ * update wiki download links +* update wiki changelog: https://en.bitcoin.it/wiki/Changelog + * Commit your signature to gitian.sigs: pushd gitian.sigs git add ${VERSION}/${SIGNER} diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index a954050b31..3553f81b45 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -225,7 +225,7 @@ Value stop(const Array& params, bool fHelp) "stop\n" "Stop bitcoin server."); // Shutdown will take long enough that the response should get back - QueueShutdown(); + StartShutdown(); return "bitcoin server stopping"; } @@ -1707,7 +1707,7 @@ Value encryptwallet(const Array& params, bool fHelp) // BDB seems to have a bad habit of writing old data into // slack space in .dat files; that is bad if the old data is // unencrypted private keys. So: - QueueShutdown(); + StartShutdown(); return "wallet encrypted; bitcoin server stopping, restart to run with encrypted wallet"; } @@ -2380,7 +2380,7 @@ void ThreadRPCServer2(void* parg) GetConfigFile().string().c_str(), EncodeBase58(&rand_pwd[0],&rand_pwd[0]+32).c_str()), _("Error"), wxOK | wxMODAL); - QueueShutdown(); + StartShutdown(); return; } @@ -2401,7 +2401,7 @@ void ThreadRPCServer2(void* parg) { ThreadSafeMessageBox(strprintf(_("An error occured while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()), _("Error"), wxOK | wxMODAL); - QueueShutdown(); + StartShutdown(); return; } diff --git a/src/init.cpp b/src/init.cpp index 96766f8b01..281a8cae56 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -36,6 +36,17 @@ void ExitTimeout(void* parg) #endif } +void StartShutdown() +{ +#ifdef QT_GUI + // ensure we leave the Qt main loop for a clean GUI exit (Shutdown() is called in bitcoin.cpp afterwards) + QueueShutdown(); +#else + // Without UI, Shutdown() can simply be started in a new thread + CreateThread(Shutdown, NULL); +#endif +} + void Shutdown(void* parg) { static CCriticalSection cs_Shutdown; @@ -64,7 +75,10 @@ void Shutdown(void* parg) Sleep(50); printf("Bitcoin exiting\n\n"); fExit = true; +#ifndef QT_GUI + // ensure non UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp exit(0); +#endif } else { diff --git a/src/init.h b/src/init.h index 4826ab167c..cc276a2bf3 100644 --- a/src/init.h +++ b/src/init.h @@ -9,6 +9,7 @@ extern CWallet* pwalletMain; +void StartShutdown(); void Shutdown(void* parg); bool AppInit(int argc, char* argv[]); bool AppInit2(int argc, char* argv[]); diff --git a/src/main.cpp b/src/main.cpp index d236c6d1d0..c5b0a721fe 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1835,7 +1835,7 @@ bool CheckDiskSpace(uint64 nAdditionalBytes) strMiscWarning = strMessage; printf("*** %s\n", strMessage.c_str()); ThreadSafeMessageBox(strMessage, "Bitcoin", wxOK | wxICON_EXCLAMATION | wxMODAL); - QueueShutdown(); + StartShutdown(); return false; } return true; diff --git a/src/net.cpp b/src/net.cpp index 37b01f7599..d3236b341c 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -609,7 +609,7 @@ void ThreadSocketHandler2(void* parg) if (nSelect == SOCKET_ERROR) { int nErr = WSAGetLastError(); - if (hSocketMax > -1) + if (hSocketMax != INVALID_SOCKET) { printf("socket select error %d\n", nErr); for (unsigned int i = 0; i <= hSocketMax; i++) @@ -1477,7 +1477,7 @@ void ThreadMessageHandler2(void* parg) vnThreadsRunning[THREAD_MESSAGEHANDLER]--; Sleep(100); if (fRequestShutdown) - Shutdown(NULL); + StartShutdown(); vnThreadsRunning[THREAD_MESSAGEHANDLER]++; if (fShutdown) return; diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp index 3e55c39e04..02454c5af3 100644 --- a/src/qt/addressbookpage.cpp +++ b/src/qt/addressbookpage.cpp @@ -123,11 +123,6 @@ void AddressBookPage::setModel(AddressTableModel *model) connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(selectionChanged())); - if(mode == ForSending) - { - // Auto-select first row when in sending mode - ui->tableView->selectRow(0); - } selectionChanged(); } diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 97a8f916c3..b4f418e2b8 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -288,6 +288,7 @@ int main(int argc, char *argv[]) clientmodel = 0; walletmodel = 0; } + // Shutdown the core and it's threads, but don't exit Bitcoin-Qt here Shutdown(NULL); } else diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 3cae99ebc9..fd31d3c5fe 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -163,8 +163,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): BitcoinGUI::~BitcoinGUI() { - if(trayIcon) // Hide tray icon, as deleting will let it linger until quit (on Ubuntu) - trayIcon->hide(); #ifdef Q_WS_MAC delete appMenuBar; #endif diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index 3cf7dd0ed3..10e470e918 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -44,7 +44,7 @@ <item row="2" column="1"> <widget class="QLabel" name="labelBalance"> <property name="text"> - <string>123.456 BTC</string> + <string notr="true">0 BTC</string> </property> </widget> </item> @@ -72,7 +72,7 @@ <item row="3" column="1"> <widget class="QLabel" name="labelUnconfirmed"> <property name="text"> - <string>0 BTC</string> + <string notr="true">0 BTC</string> </property> </widget> </item> diff --git a/src/test/test_bitcoin.cpp b/src/test/test_bitcoin.cpp index 7ff7545ab4..c7e4bdd556 100644 --- a/src/test/test_bitcoin.cpp +++ b/src/test/test_bitcoin.cpp @@ -26,3 +26,9 @@ void Shutdown(void* parg) { exit(0); } + +void StartShutdown() +{ + exit(0); +} + diff --git a/src/util.cpp b/src/util.cpp index ef8f755f54..dca4197981 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -26,6 +26,7 @@ namespace boost { #include <boost/interprocess/sync/interprocess_mutex.hpp> #include <boost/interprocess/sync/interprocess_recursive_mutex.hpp> #include <boost/foreach.hpp> +#include <boost/thread.hpp> #include <openssl/crypto.h> #include <openssl/rand.h> @@ -209,6 +210,8 @@ inline int OutputDebugStringF(const char* pszFormat, ...) if (fileout) { static bool fStartedNewLine = true; + static boost::mutex mutexDebugLog; + boost::mutex::scoped_lock scoped_lock(mutexDebugLog); // Debug print useful for profiling if (fLogTimestamps && fStartedNewLine) |