citra/src/core/hle/kernel
Pengfei Zhu de3d7cf49f
kernel/thread: Change owner_process to std::weak_ptr (#5325)
* kernel/thread: Change owner_process to std::weak_ptr

Previously this leaked almost all kernel objects. In short, Threads own Processes which own HandleTables which own maps of Objects which include Threads.

Changing this to weak_ptr at least got the camera interfaces to destruct properly. Did not really check the other objects though, and I think there are probably more leaks.

* hle/kernel: Lock certain objects while deserializing

When deserializing other kernel objects, these objects (`MemoryRegion`s and `VMManager`s) can possibly get modified. To avoid inconsistent state caused by destructor side-effects, we may as well simply lock them until loading is fully completed.

* Fix silly typo

Somehow this didn't break?!
2020-11-15 12:59:45 +01:00
..
ipc_debugger kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
address_arbiter.cpp CR actions 2020-04-20 16:30:49 +01:00
address_arbiter.h Fix clang format 2020-04-18 15:14:01 +01:00
client_port.cpp clang-format fixes 2020-02-13 17:39:15 +08:00
client_port.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
client_session.cpp clang-format fixes 2020-02-13 17:39:15 +08:00
client_session.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
config_mem.cpp Fixed serialization runtime exceptions 2020-02-13 17:42:08 +08:00
config_mem.h Code review - general gardening 2020-03-29 16:14:36 +01:00
errors.h Kernel: reimplement memory management on physical FCRAM (#4392) 2018-11-06 15:00:47 -05:00
event.cpp clang-format fixes 2020-02-13 17:39:15 +08:00
event.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
handle_table.cpp Core timing 2.0 (#4913) 2020-02-21 19:31:32 +01:00
handle_table.h clang-format fixes 2020-02-13 17:39:15 +08:00
hle_ipc.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
hle_ipc.h Serialize ArchiveManager and other code review actions 2020-03-29 18:56:25 +01:00
ipc.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
ipc.h Changed u8* to MemoryRef 2020-02-13 17:42:00 +08:00
kernel.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
kernel.h ArmInterface: return ref instead of copy for GetTimer (#5227) 2020-04-22 07:44:58 +02:00
memory.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
memory.h kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
mutex.cpp Merge branch 'master' into feature/savestates-2 2020-03-07 21:23:08 +00:00
mutex.h clang format fixes etc. 2020-03-31 18:27:33 +01:00
object.cpp Use load_construct_data for kernel objects 2020-02-13 17:38:25 +08:00
object.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
process.cpp Bump kernel version for 3DSX (#5446) 2020-10-01 09:54:42 +08:00
process.h Bump kernel version for 3DSX (#5446) 2020-10-01 09:54:42 +08:00
resource_limit.cpp Use load_construct_data for kernel objects 2020-02-13 17:38:25 +08:00
resource_limit.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
semaphore.cpp clang-format fixes 2020-02-13 17:39:15 +08:00
semaphore.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
server_port.cpp clang format fixes etc. 2020-03-31 18:27:33 +01:00
server_port.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
server_session.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
server_session.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
session.cpp Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
session.h Added client/server objects 2020-02-13 17:38:16 +08:00
shared_memory.cpp Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
shared_memory.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
shared_page.cpp kernel/shared_page: Silence missing return warning in GetInitTime() 2020-04-18 19:48:54 -04:00
shared_page.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
svc.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
svc.h Refactor out the wakeup_callback function pointer 2020-02-13 17:42:05 +08:00
svc_wrapper.h Add a couple of useful SVC logs 2020-04-11 19:47:06 +01:00
thread.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
thread.h kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
timer.cpp Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
timer.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
vm_manager.cpp kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
vm_manager.h kernel/thread: Change owner_process to std::weak_ptr (#5325) 2020-11-15 12:59:45 +01:00
wait_object.cpp Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00
wait_object.h Code review actions (plus hopefully fix the linux CI) 2020-03-31 17:54:28 +01:00