To break a circular reference formed by process->handle_table->shared_memory->process. Since SharedMemory uses its owner process in the destructor, which is not kept alive by SharedMemory any more, we need to make sure that the lifetime of process is longer than the shared memory. To partially resolve this, Process now explicitly releases shared memory first in its destructor. This is with the assumtion that there is no inter-process reference to shared memory on exit, which is not true when we introduce more multi-process emulation. A TODO is left there for this, as more RE needs to be done on how 3DS handles this situation |
||
---|---|---|
.. | ||
applets | ||
kernel | ||
service | ||
ipc_helpers.h | ||
ipc.h | ||
lock.cpp | ||
lock.h | ||
result.h | ||
romfs.cpp | ||
romfs.h |