diff --git a/hipamd/src/hip_stream.cpp b/hipamd/src/hip_stream.cpp index 1fecfe45ab..f49c5d207e 100644 --- a/hipamd/src/hip_stream.cpp +++ b/hipamd/src/hip_stream.cpp @@ -421,8 +421,18 @@ hipError_t hipStreamDestroy(hipStream_t stream) { if (!hip::isValid(stream)) { HIP_RETURN(hipErrorContextIsDestroyed); } + hip::Stream* s = reinterpret_cast(stream); - delete reinterpret_cast(stream); + amd::ScopedLock lock(g_captureStreamsLock); + const auto& g_it = std::find(g_captureStreams.begin(), g_captureStreams.end(), s); + if (g_it != g_captureStreams.end()) { + g_captureStreams.erase(g_it); + } + const auto& l_it = std::find(l_captureStreams.begin(), l_captureStreams.end(), s); + if (l_it != l_captureStreams.end()) { + l_captureStreams.erase(l_it); + } + delete s; HIP_RETURN(hipSuccess); }