From 1d4ef87bb11e447334d2dea99b5a70c7201d6b97 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Mon, 13 Feb 2017 13:59:29 +0000 Subject: Use maxMiningTime in mining as opposed to poll counter --- test/RPCSession.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'test/RPCSession.cpp') diff --git a/test/RPCSession.cpp b/test/RPCSession.cpp index c27e73d4..613d042a 100644 --- a/test/RPCSession.cpp +++ b/test/RPCSession.cpp @@ -248,22 +248,26 @@ void RPCSession::test_mineBlocks(int _number) // We auto-calibrate the time it takes to mine the transaction. // It would be better to go without polling, but that would probably need a change to the test client + unsigned startTime = boost::posix_time::microsec_clock::local_time(); unsigned sleepTime = m_sleepTime; - size_t polls = 0; - for (; polls < 14 && !mined; ++polls) + size_t tries = 0; + for (; !mined; ++tries) { std::this_thread::sleep_for(chrono::milliseconds(sleepTime)); + boost::posix_time::time_duration timeSpent = boost::posix_time::microsec_clock::local_time() - startTime; + if (timeSpent > m_maxMiningTime) + break; if (fromBigEndian(fromHex(rpcCall("eth_blockNumber").asString())) >= startBlock + _number) mined = true; else sleepTime *= 2; } - if (polls > 1) + if (tries > 1) { m_successfulMineRuns = 0; m_sleepTime += 2; } - else if (polls == 1) + else if (tries == 1) { m_successfulMineRuns++; if (m_successfulMineRuns > 5) -- cgit