SWDEV-462192 SWDEV-459056 Check if m_streams is empty

1) Since g_devices is not initialized when stream_per_thread constructor
is called on windows, m_streams is empty when hipDeviceReset is called.
2) clear_spt tries to access empty vector causing segfaults in
hipDeviceReset call.
3) on linux ROCCLR_INIT_PRIORITY makes sure that g_devices is initialized
first before tls constructor creates stream_per_thread object.

Change-Id: Ib2ba643d1278d820287ea3b242ed0878d7529165


[ROCm/clr commit: 450eca293b]
Cette révision appartient à :
Rahul Manocha
2024-08-28 14:03:20 -07:00
révisé par Rahul Manocha
Parent ec3d97ab8d
révision 900f906827
+3 -1
Voir le fichier
@@ -237,7 +237,9 @@ hipStream_t stream_per_thread::get() {
}
void stream_per_thread::clear_spt() {
m_streams[getCurrentDevice()->deviceId()] = nullptr;
if (!m_streams.empty()) {
m_streams[getCurrentDevice()->deviceId()] = nullptr;
}
}