k_server_session: add SendReplyHLE

master
Liam 2022-10-26 17:32:14 +07:00
parent 7837185f0a
commit 7aa91c8d9c
3 changed files with 6 additions and 5 deletions

@ -55,6 +55,10 @@ public:
Result ReceiveRequest(std::shared_ptr<HLERequestContext>* out_context = nullptr,
std::weak_ptr<SessionRequestManager> manager = {});
Result SendReplyHLE() {
return SendReply(true);
}
private:
/// Frees up waiting client sessions when this server session is about to die
void CleanupRequests();

@ -103,7 +103,7 @@ void ServiceThread::Impl::WaitAndProcessImpl() {
Result service_rc = manager->CompleteSyncRequest(server_session, *context);
// Reply to the client.
rc = server_session->SendReply(true);
rc = server_session->SendReplyHLE();
if (rc == ResultSessionClosed || service_rc == IPC::ERR_REMOTE_PROCESS_DEAD) {
SessionClosed(server_session, manager);

@ -33,16 +33,13 @@ void Controller::CloneCurrentObject(Kernel::HLERequestContext& ctx) {
// FIXME: this is duplicated from the SVC, it should just call it instead
// once this is a proper process
// Declare the session we're going to allocate.
Kernel::KSession* session;
// Reserve a new session from the process resource limit.
Kernel::KScopedResourceReservation session_reservation(&process,
Kernel::LimitableResource::Sessions);
ASSERT(session_reservation.Succeeded());
// Create the session.
session = Kernel::KSession::Create(system.Kernel());
Kernel::KSession* session = Kernel::KSession::Create(system.Kernel());
ASSERT(session != nullptr);
// Initialize the session.