hle: service: sm: GetService: Reserve session resource when we create a KSession.
This commit is contained in:
parent
21671d05a3
commit
49c4c329f6
|
@ -133,9 +133,16 @@ void SM::GetService(Kernel::HLERequestContext& ctx) {
|
|||
|
||||
auto* port = result.Unwrap();
|
||||
|
||||
Kernel::KScopedResourceReservation session_reservation(
|
||||
kernel.CurrentProcess()->GetResourceLimit(), Kernel::LimitableResource::Sessions);
|
||||
R_UNLESS(session_reservation.Succeeded(), Kernel::ResultLimitReached);
|
||||
|
||||
auto* session = Kernel::KSession::Create(kernel);
|
||||
session->Initialize(&port->GetClientPort(), std::move(name));
|
||||
|
||||
// Commit the session reservation.
|
||||
session_reservation.Commit();
|
||||
|
||||
if (port->GetServerPort().GetHLEHandler()) {
|
||||
port->GetServerPort().GetHLEHandler()->ClientConnected(&session->GetServerSession());
|
||||
} else {
|
||||
|
|
Reference in New Issue