aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/scheduler.cpp
AgeCommit message (Collapse)Author
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.
2019-12-05CpuCore: Clear exclusive state after doing a run in dynarmic.Fernando Sahmkow
This commit corrects an error in which a Core could remain with an exclusive state after running, leaving space for possible race conditions between changing cores.
2019-11-24kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei
kernel objects. (#3154) * kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details.
2019-11-12kernel: Resolve sign conversion warningsLioncash
Uncovered a bug within Thread's SetCoreAndAffinityMask() where an unsigned variable (ideal_core) was being compared against "< 0", which would always be a false condition. We can also get rid of an unused function (GetNextProcessorId) which contained a sign mismatch warning.
2019-10-27scheduler: Mark parameter of AskForReselectionOrMarkRedundant() as constLioncash
This is only compared against, so it can be made const.
2019-10-27scheduler: Silence sign conversion warningsLioncash
2019-10-27scheduler: Initialize class members directly where applicableLioncash
Reduces the overall amount of code.
2019-10-27scheduler: Amend documentation commentsLioncash
Adjusts the formatting of a few of the comments an ensures they get recognized as proper Doxygen comments.