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]
This commit is contained in:
Rahul Manocha authored and Rahul Manocha committed 2024-09-01 17:17:20 -04:00
1 bovenliggende ec3d97ab8d
commit 900f906827
1 file changed
+3 -1
@@ -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;
}
}