Exponential sleep increase on mining failure.

This commit is contained in:
chriseth 2016-08-06 11:55:37 +02:00
parent 1bc0320811
commit 53f68a155f
2 changed files with 7 additions and 3 deletions

View File

@ -245,11 +245,15 @@ void RPCSession::test_mineBlocks(int _number)
rpcCall("test_mineBlocks", { to_string(_number) }, true); rpcCall("test_mineBlocks", { to_string(_number) }, true);
//@TODO do not use polling - but that would probably need a change to the test client //@TODO do not use polling - but that would probably need a change to the test client
for (size_t polls = 0; polls < 100; ++polls) unsigned sleepTime = 10;
for (size_t polls = 0; polls < 10; ++polls)
{ {
if (fromBigEndian<u256>(fromHex(rpcCall("eth_blockNumber").asString())) >= startBlock + _number) if (fromBigEndian<u256>(fromHex(rpcCall("eth_blockNumber").asString())) >= startBlock + _number)
return; return;
std::this_thread::sleep_for(chrono::milliseconds(10)); //it does not work faster then 10 ms std::this_thread::sleep_for(chrono::milliseconds(sleepTime));
if (sleepTime > 500)
cout << "Mining timeout, sleeping for " << sleepTime << " ms" << endl;
sleepTime *= 2;
} }
BOOST_FAIL("Error in test_mineBlocks: block mining timeout!"); BOOST_FAIL("Error in test_mineBlocks: block mining timeout!");

View File

@ -107,7 +107,7 @@ struct Options: boost::noncopyable
{ {
std::string ipcPath; std::string ipcPath;
Options const& get(); static Options const& get();
private: private:
Options(); Options();