X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fnet.cpp;h=bb54b2ebcca9d873b7b26b775861d8243753d943;hb=06281cf1f6e0aee12300a9aebe9d1363b2e22c90;hp=a65097939b32b5a748810246a0f279a763445785;hpb=58561410692c520d91def67c36aadf8edd992272;p=novacoin.git diff --git a/src/net.cpp b/src/net.cpp index a650979..bb54b2e 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1412,6 +1412,27 @@ void ThreadMessageHandler2(void* parg) } } +// ppcoin: stake minter thread +void static ThreadStakeMinter(void* parg) +{ + printf("ThreadStakeMinter started\n"); + CWallet* pwallet = (CWallet*)parg; + try + { + vnThreadsRunning[THREAD_MINTER]++; + BitcoinMiner(pwallet, true); + vnThreadsRunning[THREAD_MINTER]--; + } + catch (std::exception& e) { + vnThreadsRunning[THREAD_MINTER]--; + PrintException(&e, "ThreadStakeMinter()"); + } catch (...) { + vnThreadsRunning[THREAD_MINTER]--; + PrintException(NULL, "ThreadStakeMinter()"); + } + printf("ThreadStakeMinter exiting, %d threads remaining\n", vnThreadsRunning[THREAD_MINTER]); +} + @@ -1625,6 +1646,10 @@ void StartNode(void* parg) // Generate coins in the background GenerateBitcoins(GetBoolArg("-gen", false), pwalletMain); + + // ppcoin: mint proof-of-stake blocks in the background + if (!CreateThread(ThreadStakeMinter, pwalletMain)) + printf("Error: CreateThread(ThreadStakeMinter) failed\n"); } bool StopNode() @@ -1656,6 +1681,7 @@ bool StopNode() if (vnThreadsRunning[THREAD_DNSSEED] > 0) printf("ThreadDNSAddressSeed still running\n"); if (vnThreadsRunning[THREAD_ADDEDCONNECTIONS] > 0) printf("ThreadOpenAddedConnections still running\n"); if (vnThreadsRunning[THREAD_DUMPADDRESS] > 0) printf("ThreadDumpAddresses still running\n"); + if (vnThreadsRunning[THREAD_MINTER] > 0) printf("ThreadStakeMinter still running\n"); while (vnThreadsRunning[THREAD_MESSAGEHANDLER] > 0 || vnThreadsRunning[THREAD_RPCSERVER] > 0) Sleep(20); Sleep(50);