@ -435,8 +435,14 @@ namespace cryptonote
void tx_memory_pool : : prune ( size_t bytes )
{
CRITICAL_REGION_LOCAL ( m_transactions_lock ) ;
// Nothing to do if already empty
if ( m_txs_by_fee_and_receive_time . empty ( ) )
return ;
if ( bytes = = 0 )
bytes = m_txpool_max_weight ;
CRITICAL_REGION_LOCAL1 ( m_blockchain ) ;
LockedTXN lock ( m_blockchain . get_db ( ) ) ;
bool changed = false ;
@ -481,8 +487,13 @@ namespace cryptonote
reduce_txpool_weight ( meta . weight ) ;
remove_transaction_keyimages ( tx , txid ) ;
MINFO ( " Pruned tx " < < txid < < " from txpool: weight: " < < meta . weight < < " , fee/byte: " < < it - > first . first ) ;
auto it_prev = it ;
- - it_prev ;
remove_tx_from_transient_lists ( it , txid , ! meta . matches ( relay_category : : broadcasted ) ) ;
it - - ;
it = it_prev ;
changed = true ;
}
catch ( const std : : exception & e )
@ -1827,7 +1838,7 @@ namespace cryptonote
auto sorted_it = find_tx_in_sorted_container ( txid ) ;
if ( sorted_it = = m_txs_by_fee_and_receive_time . end ( ) )
{
M ERROR ( " Re-adding tx " < < txid < < " to tx pool, but it was not found in the sorted txs container " ) ;
M DEBUG ( " Re-adding tx " < < txid < < " to tx pool, but it was not found in the sorted txs container " ) ;
}
else
{