yuzu/src/core/hle/kernel
Lioncash 39483b92b7 kernel/thread: Amend condition within UpdatePriority()
This condition was checking against the nominal thread priority, whereas
the kernel itself checks against the current priority instead. We were
also assigning the nominal priority, when we should be assigning
current_priority, which takes priority inheritance into account.

This can lead to the incorrect priority being assigned to a thread.

Given we recursively update the relevant threads, we don't need to go
through the whole mutex waiter list. This matches what the kernel does
as well (only accessing the first entry within the waiting list).
2019-03-15 23:01:43 -04:00
..
address_arbiter.cpp kernel/svc: Move address arbiter signaling behind a unified API function 2019-03-07 23:27:47 -05:00
address_arbiter.h kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
client_port.cpp
client_port.h
client_session.cpp kernel/server_session: Make data members private 2019-03-05 20:10:07 -05:00
client_session.h kernel/client_session: Make data members private 2019-03-05 20:10:03 -05:00
errors.h kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
handle_table.cpp kernel/handle_table: Make local variables as const where applicable 2019-02-25 11:12:38 -05:00
handle_table.h kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
hle_ipc.cpp kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional 2019-03-07 23:34:37 -05:00
hle_ipc.h kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional 2019-03-07 23:34:37 -05:00
kernel.cpp kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
kernel.h kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
mutex.cpp
mutex.h
object.cpp kernel: Remove the Timer class 2019-01-31 23:05:15 -05:00
object.h kernel: Remove the Timer class 2019-01-31 23:05:15 -05:00
process_capability.cpp kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
process_capability.h kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
process.cpp kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
process.h kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
readable_event.cpp kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() override 2019-01-30 12:45:00 -05:00
readable_event.h kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() override 2019-01-30 12:45:00 -05:00
resource_limit.cpp kernel/resource_limit: Clean up interface 2018-11-19 18:16:39 -05:00
resource_limit.h svc: Implement svcGetResourceLimitLimitValue() 2018-11-26 21:12:13 -05:00
scheduler.cpp kernel/scheduler: Pass in system instance in constructor 2019-03-04 17:01:37 -05:00
scheduler.h kernel/scheduler: Pass in system instance in constructor 2019-03-04 17:01:37 -05:00
server_port.cpp
server_port.h
server_session.cpp kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional 2019-03-07 23:34:37 -05:00
server_session.h kernel/server_session: Make data members private 2019-03-05 20:10:07 -05:00
session.cpp
session.h
shared_memory.cpp kernel/shared_memory: Get rid of the use of global accessor functions within Create() 2019-03-04 16:52:36 -05:00
shared_memory.h Fix Process object leak on emulation stop 2018-12-12 17:25:56 +01:00
svc_wrap.h kernel/svc: Correct output parameter for svcGetProcessId 2018-12-18 22:30:56 -05:00
svc.cpp kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
svc.h vm_manager: Migrate MemoryInfo and PageInfo to vm_manager.h 2018-12-12 14:03:53 -05:00
thread.cpp kernel/thread: Amend condition within UpdatePriority() 2019-03-15 23:01:43 -04:00
thread.h kernel: Rename 'default' CPU core to 'ideal' core 2018-12-27 21:48:49 -05:00
vm_manager.cpp vm_manager: Use range helpers in HeapAlloc() and HeapFree() 2019-03-04 17:16:52 -05:00
vm_manager.h vm_manager: Provide address range checking functions for other memory regions 2019-03-04 17:08:55 -05:00
wait_object.cpp core/kernel: Remove unnecessary inclusions 2018-12-31 19:04:16 -05:00
wait_object.h kernel/wait_object: Devirtualize functions related to manipulating the thread list directly 2019-01-30 12:50:37 -05:00
writable_event.cpp hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 2018-11-29 09:14:20 -05:00
writable_event.h core/kernel: Remove unnecessary inclusions 2018-12-31 19:04:16 -05:00