1
0
Fork 0
forked from suyu/suyu
suyu/src/core/hle/kernel
ReinUsesLisp ccdd84a778 hle/scheduler: Fix data race in is_context_switch_pending
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-26 02:56:05 +00:00
..
memory Merge pull request #4492 from lioncash/linkage 2020-08-15 02:11:49 -04:00
address_arbiter.cpp address_arbiter: Resolve sign conversion warning 2020-08-05 15:07:19 -04:00
address_arbiter.h SVC: Correct svcWaitForAddress and svcSignalToAddress. 2020-06-27 11:35:25 -04:00
client_port.cpp General: Cleanup legacy code. 2020-06-27 11:36:05 -04:00
client_port.h kernel: Remove unnecessary includes 2019-12-07 22:37:05 -05:00
client_session.cpp core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
client_session.h core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
code_set.cpp kernel: Move CodeSet structure to its own source files 2019-03-20 13:07:04 -04:00
code_set.h VM_Manager: Align allocated memory to 256bytes 2019-07-19 10:06:08 -04:00
errors.h SVC: WaitSynchronization add Termination Pending Result. 2020-06-27 11:35:36 -04:00
handle_table.cpp kernel/handle_table: Remove usages of the global system instance 2020-07-15 13:40:15 -04:00
handle_table.h kernel/handle_table: Remove usages of the global system instance 2020-07-15 13:40:15 -04:00
hle_ipc.cpp General: Tidy up clang-format warnings part 2 2020-08-13 14:19:08 -04:00
hle_ipc.h ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465) 2020-08-03 07:28:54 -04:00
kernel.cpp core_timing: Make use of uintptr_t to represent user_data 2020-07-27 21:21:01 -04:00
kernel.h kernel: Add missing include 2020-07-16 13:51:51 -04:00
mutex.cpp Clang Format. 2020-06-27 11:36:14 -04:00
mutex.h Clang Format. 2020-06-27 11:36:14 -04:00
object.cpp kernel: Implement a more accurate IPC dispatch. 2019-11-28 12:01:53 -05:00
object.h kernel: Implement a more accurate IPC dispatch. 2019-11-28 12:01:53 -05:00
physical_core.cpp Core/Common: Address Feedback. 2020-06-27 18:20:06 -04:00
physical_core.h Core/Common: Address Feedback. 2020-06-27 18:20:06 -04:00
physical_memory.h physical_memory: Add missing include for <vector>. 2020-04-17 00:59:30 -04:00
process.cpp kernel/handle_table: Remove usages of the global system instance 2020-07-15 13:40:15 -04:00
process.h kernel/process: Move name and system context to the bottom of the member list 2020-07-15 13:40:18 -04:00
process_capability.cpp kernel: Don't fail silently 2020-04-29 14:53:53 +10:00
process_capability.h kernel: process_capability: Update to use Memory::PageTable. 2020-04-17 00:59:31 -04:00
readable_event.cpp SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLock 2020-06-27 11:35:13 -04:00
readable_event.h Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
resource_limit.cpp kernel: ResourceLimit::Reserve remove useless while loop 2020-05-29 13:48:01 +10:00
resource_limit.h kernel: resource_limit: Improvements to implementation. 2020-04-17 00:59:27 -04:00
scheduler.cpp hle/scheduler: Fix data race in is_context_switch_pending 2020-08-26 02:56:05 +00:00
scheduler.h kernel/scheduler: Mark SchedulerLock constructor as nodiscard 2020-08-14 04:43:44 -04:00
server_port.cpp Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
server_port.h Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
server_session.cpp core_timing: Make use of uintptr_t to represent user_data 2020-07-27 21:21:01 -04:00
server_session.h core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
session.cpp Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
session.h Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
shared_memory.cpp shared_memory: Amend doxygen reference 2020-04-23 18:42:14 -04:00
shared_memory.h shared_memory: Amend doxygen reference 2020-04-23 18:42:14 -04:00
svc.cpp kernel: Remove unused variables 2020-07-16 14:17:50 -04:00
svc.h core: kernel: Move SVC to its own namesapce. 2020-04-17 00:59:28 -04:00
svc_types.h core: kernel: Add svc_types header to include SVC-specific types. 2020-04-17 00:59:28 -04:00
svc_wrap.h SVC: Implement 32-bits wrappers and update Dynarmic. 2020-06-27 11:36:27 -04:00
synchronization.cpp kernel: Remove unused variables 2020-07-16 14:17:50 -04:00
synchronization.h Core: Address Feedback 2020-02-13 19:10:33 -04:00
synchronization_object.cpp General: Cleanup legacy code. 2020-06-27 11:36:05 -04:00
synchronization_object.h General: Cleanup legacy code. 2020-06-27 11:36:05 -04:00
thread.cpp cpu_manager: Mark function getters as static 2020-07-16 13:30:56 -04:00
thread.h kernel/thread: Remove unimplemented function prototype 2020-07-16 14:32:46 -04:00
time_manager.cpp core_timing: Make use of uintptr_t to represent user_data 2020-07-27 21:21:01 -04:00
time_manager.h Kernel: Fixes, corrections and asserts to scheduler and different svcs. 2020-06-27 11:35:40 -04:00
transfer_memory.cpp kernel: transfer_memory: Refactor for new VMM. 2020-04-17 00:59:32 -04:00
transfer_memory.h kernel: transfer_memory: Refactor for new VMM. 2020-04-17 00:59:32 -04:00
writable_event.cpp Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
writable_event.h kernel: Remove unnecessary includes 2019-12-07 22:37:05 -05:00