|
|
@@ -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 {
|