SWDEV-472309 - Ensure static maps are destroyed after __hipUnregisterFatBinary

hipDeviceSynchronize called from __hipUnregisterFatBinary
accesses static maps and monitors. This change ensures these ojects
are not destroyed before __hipUnregisterFatBinary  is called.
Additionally it disables the teardown process for static build.

Change-Id: I46b58641d60efcf6637a8e99cdd786ffe9e2c77d
This commit is contained in:
Ioannis Assiouras
2024-07-11 22:50:41 +01:00
parent 7298b80112
commit 9b33db9b24
4 changed files with 7 additions and 5 deletions
+1 -1
View File
@@ -109,7 +109,7 @@ amd::Monitor listenerLock("Hostcall listener lock");
std::vector<ReferenceCountedObject*> RuntimeTearDown::external_;
RuntimeTearDown::~RuntimeTearDown() {
#ifndef _WIN32
#if !defined(_WIN32) && !defined(BUILD_STATIC_LIBS)
// Only perform destruction if process matches the initialization,
// to avoid a call with the child process after fork()
if (amd::IS_HIP && amd::Os::getProcessId() == Runtime::pid()) {