aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/scheduler.cpp
AgeCommit message (Collapse)Author
2020-12-06hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei
2020-12-06hle: kernel: Port KAffinityMask from Mesosphere.bunnei
2020-11-29kernel: scheduler: Minor cleanup to remove duplicated code.bunnei
2020-11-29hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.bunnei
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-13core/CMakeLists: Make some warnings errorsLioncash
Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors.
2020-08-26hle/scheduler: Fix data race in is_context_switch_pendingReinUsesLisp
As reported by tsan, SelectThreads could write to is_context_switch_pending holding a mutex while SwitchToCurrent reads it without holding any. It is assumed that the author didn't want an atomic here, so the code is reordered so that whenever is_context_switch_pending is read inside SwitchToContext, the mutex is locked.
2020-08-10Merge pull request #4491 from lioncash/unused-varsbunnei
kernel: Remove unused variables
2020-08-05kernel: Remove unused variablesLioncash
Resolves a few compiler warnings.
2020-08-05scheduler: Resolve sign conversion warningLioncash
2020-07-16cpu_manager: Mark function getters as staticLioncash
All these do are return std::function instances of static functions, so these can be used without an instance of the CPU manager.
2020-06-28core_timing,scheduler: Use std::scoped_lock when possibleReinUsesLisp
Simplifies the cognitive load of procedures using locks and makes locks safe against exceptions.
2020-06-27Core/Common: Address Feedback.Fernando Sahmkow
2020-06-27Kernel: Correct Host Context on Threads and Scheduler.Fernando Sahmkow
2020-06-27Scheduler: Correct Reload/UnloadFernando Sahmkow
2020-06-27Thread: Release the ARM Interface on exitting.Fernando Sahmkow
2020-06-27General: Move ARM_Interface into Threads.Fernando Sahmkow
2020-06-27Scheduler: Correct yielding interaction with SetThreadActivity.Fernando Sahmkow
2020-06-27General: Fix microprofile on dynarmic/svc, fix wait tree showing which ↵Fernando Sahmkow
threads were running.
2020-06-27Kernel: Rewind on SVC change.Fernando Sahmkow
2020-06-27CPU_Manager: Unload/Reload threads on preemption on SingleCoreFernando Sahmkow
2020-06-27Scheduler: Set last running time on thread.Fernando Sahmkow
2020-06-27Kernel: Corrections to TimeManager, Scheduler and Mutex.Fernando Sahmkow
2020-06-27Kernel: Fixes, corrections and asserts to scheduler and different svcs.Fernando Sahmkow
2020-06-27Scheduler: Correct yields.Fernando Sahmkow
2020-06-27Scheduler: Remove arm_interface lock and a few corrections.Fernando Sahmkow
2020-06-27SVC: Correct SetThreadActivity.Fernando Sahmkow
2020-06-27Scheduler: Correct locking for hle threads.Fernando Sahmkow
2020-06-27Scheduler: Fix HLE Threads on guardFernando Sahmkow
2020-06-27Scheduler: Protect on closed threads.Fernando Sahmkow
2020-06-27Scheduler: Correct assert.Fernando Sahmkow
2020-06-27Core: Correct rebase.Fernando Sahmkow
2020-06-27Scheduler: Release old thread fiber before trying to switch to the next ↵Fernando Sahmkow
thread fiber.
2020-06-27Scheduler: Correct Select Threads Step 2.Fernando Sahmkow
2020-06-27Kernel: Corrections to Scheduling.Fernando Sahmkow
2020-06-27General: Add AssertsFernando Sahmkow
2020-06-27General: Add better safety for JIT use.Fernando Sahmkow
2020-06-27SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey.Fernando Sahmkow
2020-06-27SVC: Correct SendSyncRequest.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
2020-03-02core: Implement separate A32/A64 ARM interfaces.bunnei
2020-02-22Scheduler: Inline global scheduler in Scheduler Lock.Fernando Sahmkow
2020-02-22Kernel: Correct pending feedback.Fernando Sahmkow
2020-02-22Kernel: Address Feedback.Fernando Sahmkow
2020-02-22Kernel: Implement Scheduler locksFernando Sahmkow
2020-02-22Kernel: Make global scheduler depend on KernelCoreFernando Sahmkow
2020-02-13Core: Address FeedbackFernando Sahmkow
2020-02-11Core: Set all hardware emulation constants in a single file.Fernando Sahmkow
2020-01-26Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.Fernando Sahmkow
This commit instends on better naming the new purpose of this classes.