main(int argc, char **argv) { parseArgs(argc, argv); runWorkers(); finish(); exit(exitStatus); }
Block Miner::mine(const BlockMiningParameters& blockMiningParameters, size_t threadCount) { if (threadCount == 0) { throw std::runtime_error("Miner requires at least one thread"); } if (m_state == MiningState::MINING_IN_PROGRESS) { throw std::runtime_error("Mining is already in progress"); } m_state = MiningState::MINING_IN_PROGRESS; m_miningStopped.clear(); runWorkers(blockMiningParameters, threadCount); assert(m_state != MiningState::MINING_IN_PROGRESS); if (m_state == MiningState::MINING_STOPPED) { m_logger(Logging::DEBUGGING) << "Mining has been stopped"; throw System::InterruptedException(); } assert(m_state == MiningState::BLOCK_FOUND); return m_block; }