diff --git a/mempool.cc b/mempool.cc index 904779de2db6f5c8d584b5471baeb2b12603dbdb..bcad5727948e06dbace8995c8cdee0c368fc1d6c 100644 --- a/mempool.cc +++ b/mempool.cc @@ -86,7 +86,9 @@ void pool::free(void* object) auto obj = static_cast<free_object*>(object); auto header = to_header(obj); if (!--header->nalloc) { - _free.erase(_free.iterator_to(*header)); + if (header->local_free) { + _free.erase(_free.iterator_to(*header)); + } // FIXME: add hysteresis free_page(header); } else {