| 809 | } |
| 810 | |
| 811 | int CTxMemPool::Expire(std::chrono::seconds time) |
| 812 | { |
| 813 | AssertLockHeld(cs); |
| 814 | Assume(!m_have_changeset); |
| 815 | indexed_transaction_set::index<entry_time>::type::iterator it = mapTx.get<entry_time>().begin(); |
| 816 | setEntries toremove; |
| 817 | while (it != mapTx.get<entry_time>().end() && it->GetTime() < time) { |
| 818 | toremove.insert(mapTx.project<0>(it)); |
| 819 | it++; |
| 820 | } |
| 821 | setEntries stage; |
| 822 | for (txiter removeit : toremove) { |
| 823 | CalculateDescendants(removeit, stage); |
| 824 | } |
| 825 | RemoveStaged(stage, MemPoolRemovalReason::EXPIRY); |
| 826 | return stage.size(); |
| 827 | } |
| 828 | |
| 829 | CFeeRate CTxMemPool::GetMinFee(size_t sizelimit) const { |
| 830 | LOCK(cs); |