yuzu/src/core/hle/kernel
Subv 9cd87a6352 Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.
This situation may happen like so:
Thread 1 with low priority calls WaitProcessWideKey with timeout.
Thread 2 with high priority calls WaitProcessWideKey without timeout.
Thread 3 calls SignalProcessWideKey
- Thread 2 acquires the lock and awakens.
- Thread 1 can't acquire the lock and is put to sleep with the lock owner being Thread 2.
Thread 1's timeout expires, with the lock owner still being set to Thread 2.
2018-06-02 14:06:35 -05:00
..
client_port.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
client_port.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
client_session.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
client_session.h hle: Integrate Domain handling into ServerSession. 2018-01-24 22:18:56 -05:00
errors.h Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask. 2018-05-30 21:36:29 -05:00
event.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
event.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
handle_table.cpp kernel: Migrate logging macros to fmt-compatible ones 2018-04-25 20:32:09 -04:00
handle_table.h handle_table: Remove ConvertSessionToDomain. 2018-01-24 22:18:51 -05:00
hle_ipc.cpp Added RequestWithContext & ControlWithContext 2018-05-17 14:03:52 -07:00
hle_ipc.h ipc: Add support for PopIpcInterface() method. 2018-05-01 21:57:44 -04:00
kernel.cpp core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
kernel.h Qt: Update the WaitTree widget to show info about the current mutex of each thread. 2018-04-20 21:04:34 -05:00
memory.cpp clang-format 2018-01-16 18:05:21 +00:00
memory.h kernel: Various 64-bit fixes in memory/process/thread 2017-12-29 13:27:58 -05:00
mutex.cpp Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release. 2018-05-20 14:41:58 -05:00
mutex.h Kernel: Remove old and unused Mutex code. 2018-04-20 21:04:32 -05:00
object_address_table.cpp general: Make formatting of logged hex values more straightforward 2018-05-02 09:49:36 -04:00
object_address_table.h yuzu: Update license text to be consistent across project. 2018-01-13 16:22:39 -05:00
process.cpp general: Make formatting of logged hex values more straightforward 2018-05-02 09:49:36 -04:00
process.h core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
resource_limit.cpp kernel: Migrate logging macros to fmt-compatible ones 2018-04-25 20:32:09 -04:00
resource_limit.h resource_limit: Make ResourceTypes an enum class 2018-04-20 19:41:45 -04:00
scheduler.cpp scheduler: Protect scheduling functions with a global mutex. 2018-05-10 19:34:52 -04:00
scheduler.h scheduler: Protect scheduling functions with a global mutex. 2018-05-10 19:34:52 -04:00
server_port.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
server_port.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
server_session.cpp Merge pull request #431 from lioncash/fmt 2018-05-02 15:24:41 -04:00
server_session.h Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation. 2018-02-18 13:25:48 -05:00
session.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
session.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
shared_memory.cpp general: Make formatting of logged hex values more straightforward 2018-05-02 09:49:36 -04:00
shared_memory.h svc: SharedMemory size should be 64-bits and cleanup. 2018-02-03 13:36:54 -05:00
svc_wrap.h core: Implement multicore support. 2018-05-10 19:34:46 -04:00
svc.cpp Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask. 2018-05-30 21:36:29 -05:00
svc.h Add & correct miscellaneous things (#470) 2018-05-25 22:31:54 -04:00
thread.cpp Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner. 2018-06-02 14:06:35 -05:00
thread.h thread: Rename mask to affinity_masks. 2018-05-10 19:34:53 -04:00
timer.cpp core_timing: Namespace all functions and constants in core_timing's header 2018-04-30 03:32:59 -04:00
timer.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
vm_manager.cpp core: Implement multicore support. 2018-05-10 19:34:46 -04:00
vm_manager.h core: Replace usages of LOG_GENERIC with new fmt-capable equivalents 2018-04-27 11:57:52 -04:00
wait_object.cpp thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB. 2018-03-18 20:56:32 -04:00
wait_object.h wait_object: Refactor to allow waking up a single thread. 2018-01-07 16:33:41 -05:00