diff --git a/av_transport/common/include/av_sync_utils.h b/av_transport/common/include/av_sync_utils.h index 62a7033e15da586b9575b3e67784cf56b561dd6d..fd36f9635824f220c74bbbf4fff661334855adfe 100644 --- a/av_transport/common/include/av_sync_utils.h +++ b/av_transport/common/include/av_sync_utils.h @@ -48,7 +48,7 @@ AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t si * @brief close shared memory space. * @param memory shared memory. */ -void CloseAVTransSharedMemory(const AVTransSharedMemory &memory) noexcept; +void CloseAVTransSharedMemory(AVTransSharedMemory &memory) noexcept; /** * @brief write the clock unit into the shared memory space. diff --git a/av_transport/common/src/av_sync_utils.cpp b/av_transport/common/src/av_sync_utils.cpp index 98729d43bd72b19988baa9a43f2ad7eff472218f..eaa9386e9f6d67ec36959c981ab0a04c28d082c1 100644 --- a/av_transport/common/src/av_sync_utils.cpp +++ b/av_transport/common/src/av_sync_utils.cpp @@ -62,7 +62,7 @@ AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t si return AVTransSharedMemory{fd, size, name}; } -void CloseAVTransSharedMemory(const AVTransSharedMemory &memory) noexcept +void CloseAVTransSharedMemory(AVTransSharedMemory &memory) noexcept { AVTRANS_LOGI("close shared memory, name=%{public}s, size=%{public}" PRId32 ", fd=%{public}" PRId32, memory.name.c_str(), memory.size, memory.fd); @@ -72,6 +72,7 @@ void CloseAVTransSharedMemory(const AVTransSharedMemory &memory) noexcept } if (memory.fd > 0) { (void)::close(memory.fd); + memory.fd = 0; } }