Merge pull request #6336

760ecf2 console_handler: do not let exception past the dor (moneromooo-monero)
09c8111 threadpool: lock mutex in create (moneromooo-monero)
e377977 tx_pool: catch theoretical error in get_block_reward (moneromooo-monero)
This commit is contained in:
luigi1111 2020-03-31 15:14:12 -05:00
commit 6c7d928f19
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010
3 changed files with 13 additions and 4 deletions

View File

@ -606,11 +606,15 @@ eof:
async_console_handler m_console_handler;
public:
~console_handlers_binder() {
stop_handling();
if (m_console_thread.get() != nullptr)
try
{
m_console_thread->join();
stop_handling();
if (m_console_thread.get() != nullptr)
{
m_console_thread->join();
}
}
catch (const std::exception &e) { /* ignore */ }
}
bool start_handling(std::function<std::string(void)> prompt, const std::string& usage_string = "", std::function<void(void)> exit_handler = NULL)

View File

@ -71,6 +71,7 @@ void threadpool::recycle() {
}
void threadpool::create(unsigned int max_threads) {
const boost::unique_lock<boost::mutex> lock(mutex);
boost::thread::attributes attrs;
attrs.set_stack_size(THREAD_STACK_SIZE);
max = max_threads ? max_threads : tools::get_max_concurrency();

View File

@ -1283,7 +1283,11 @@ namespace cryptonote
fee = 0;
//baseline empty block
get_block_reward(median_weight, total_weight, already_generated_coins, best_coinbase, version);
if (!get_block_reward(median_weight, total_weight, already_generated_coins, best_coinbase, version))
{
MERROR("Failed to get block reward for empty block");
return false;
}
size_t max_total_weight_pre_v5 = (130 * median_weight) / 100 - CRYPTONOTE_COINBASE_BLOB_RESERVED_SIZE;