diff options
| author | bunnei <bunneidev@gmail.com> | 2021-07-02 15:19:04 -0700 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2021-07-20 18:54:56 -0700 |
| commit | 52caa52cc2e47d426b5af38fd8439da237836e0e (patch) | |
| tree | 1412e9e92f8f3f1bd67d2d237234d149011a55d2 /src/core/hle/kernel/k_server_session.cpp | |
| parent | 8d755147d8fbe664d78b3e78514b64804505d6d7 (diff) | |
hle: kernel: Track and release server sessions, and protect methods with locks.
Diffstat (limited to 'src/core/hle/kernel/k_server_session.cpp')
| -rw-r--r-- | src/core/hle/kernel/k_server_session.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp index 5c3c13ce6..b9f24475c 100644 --- a/src/core/hle/kernel/k_server_session.cpp +++ b/src/core/hle/kernel/k_server_session.cpp @@ -28,7 +28,10 @@ namespace Kernel { KServerSession::KServerSession(KernelCore& kernel_) : KSynchronizationObject{kernel_} {} -KServerSession::~KServerSession() {} +KServerSession::~KServerSession() { + // Ensure that the global list tracking server sessions does not hold on to a reference. + kernel.UnregisterServerSession(this); +} void KServerSession::Initialize(KSession* parent_session_, std::string&& name_, std::shared_ptr<SessionRequestManager> manager_) { |
