|
|
@@ -326,4 +326,17 @@ std::optional<NvMap::FreeInfo> NvMap::FreeHandle(Handle::Id handle, bool interna
|
|
|
return freeInfo;
|
|
|
}
|
|
|
|
|
|
+void NvMap::UnmapAllHandles(NvCore::SessionId session_id) {
|
|
|
+ auto handles_copy = [&] {
|
|
|
+ std::scoped_lock lk{handles_lock};
|
|
|
+ return handles;
|
|
|
+ }();
|
|
|
+
|
|
|
+ for (auto& [id, handle] : handles_copy) {
|
|
|
+ if (handle->session_id.id == session_id.id) {
|
|
|
+ FreeHandle(id, false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
} // namespace Service::Nvidia::NvCore
|