From 20bdda6a636a4d5a82c1f4bf92872834e12178d8 Mon Sep 17 00:00:00 2001 From: PixelyIon Date: Thu, 18 Feb 2021 19:43:29 +0530 Subject: [PATCH] Support Core Migration for Running External Thread We did not support migration of threads which were running in a non-cooperative manner, this was partially due to the dependence on per-core conditional variables rather than per-thread which made this harder to do programmatically. This has been fixed by moving to per-thread cvars and therefore the limitation can be removed, this feature is used by Unity games. --- .idea/inspectionProfiles/Project_Default.xml | 2 +- app/src/main/cpp/skyline/kernel/scheduler.cpp | 113 ++++++++++++------ app/src/main/cpp/skyline/kernel/scheduler.h | 16 ++- app/src/main/cpp/skyline/kernel/svc.cpp | 5 +- .../main/cpp/skyline/kernel/types/KThread.h | 2 +- 5 files changed, 91 insertions(+), 47 deletions(-) diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 5128a64c..da936f8e 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -171,7 +171,7 @@ -