diff --git a/mesosphere/source/processes/KServerPort.cpp b/mesosphere/source/processes/KServerPort.cpp index 518ffeb8c..513e141f9 100644 --- a/mesosphere/source/processes/KServerPort.cpp +++ b/mesosphere/source/processes/KServerPort.cpp @@ -8,9 +8,18 @@ namespace mesosphere KServerPort::~KServerPort() { - KScopedCriticalSection critsec{}; + KCriticalSection &critsec = KScheduler::GetCriticalSection(); + critsec.lock(); parent->isServerAlive = false; - // TODO + // TODO: normal sessions + lightServerSessions.clear_and_dispose( + [&critsec](KLightServerSession *s) { + critsec.unlock(); + intrusive_ptr_release(s); + critsec.lock(); + } + ); + critsec.unlock(); } bool KServerPort::IsSignaled() const