Skip to content
Merged
15 changes: 12 additions & 3 deletions projects/rocblas/clients/common/host_alloc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,20 @@ void alloc_ptr_use(void* ptr, size_t size)
void free_ptr_use(void* ptr, bool call_free)
{
std::lock_guard<std::mutex> lock(mem_mutex);
if(ptr && mem_allocated[ptr])
auto it = mem_allocated.find(ptr);

if(ptr && it != mem_allocated.end())
{
mem_used -= it->second;
mem_allocated.erase(it);
}
Comment thread
tony-davis marked this conversation as resolved.
else if(ptr && call_free)
{
mem_used -= mem_allocated[ptr];
mem_allocated.erase(ptr);
rocblas_cerr << "Warning: Freeing untracked pointer " << ptr
<< " - untracked memory released (potential double-free or memory corruption)"
<< std::endl;
}

if(call_free)
free(ptr);
}
Expand Down
Loading