void pinnedGarbageCollect() { for(mem_iter iter = pinned_maps.begin(); iter != pinned_maps.end(); ++iter) { if ((iter->second).is_free) { pinnedFreeWrapper(iter->first); } } mem_iter memory_curr = pinned_maps.begin(); mem_iter memory_end = pinned_maps.end(); while(memory_curr != memory_end) { if (memory_curr->second.is_free) { pinned_maps.erase(memory_curr++); } else { ++memory_curr; } } }