Skip to content

Class FTryllManagedServerProcess

ClassList > FTryllManagedServerProcess

More...

  • #include <TryllManagedServerProcess.h>

Public Functions

Type Name
FTryllManagedServerProcess () = default
FTryllManagedServerProcess (const FTryllManagedServerProcess &) = delete
bool IsRunning ()
void ReleaseHandle ()
bool Spawn (const FString & ExePath, int32 Port, int32 IdleShutdownTimeoutSeconds, double ReadinessTimeoutSeconds, FString & OutError, bool & bOutPortConflict)
void TerminateAndRelease ()
FTryllManagedServerProcess & operator= (const FTryllManagedServerProcess &) = delete
~FTryllManagedServerProcess ()

Detailed Description

Plain (non-UObject) helper that spawns tryll_server.exe as a managed child, draining its stdout to the log until released. Shared by UTryllEditorSubsystem and UTryllSubsystem's packaged-build path — those differ in when/which port to spawn on, not in how.

Public Functions Documentation

function FTryllManagedServerProcess [1/2]

FTryllManagedServerProcess::FTryllManagedServerProcess () = default

function FTryllManagedServerProcess [2/2]

FTryllManagedServerProcess::FTryllManagedServerProcess (
    const FTryllManagedServerProcess &
) = delete

function IsRunning

bool FTryllManagedServerProcess::IsRunning () 

function ReleaseHandle

void FTryllManagedServerProcess::ReleaseHandle () 

Releases the handle without killing the process (normal teardown).


function Spawn

bool FTryllManagedServerProcess::Spawn (
    const FString & ExePath,
    int32 Port,
    int32 IdleShutdownTimeoutSeconds,
    double ReadinessTimeoutSeconds,
    FString & OutError,
    bool & bOutPortConflict
) 

Spawns ExePath with "--port Port --idle-shutdown-timeout Seconds" and waits up to ReadinessTimeoutSeconds for its TCP port to start accepting.

Returns true when the launch should proceed to connecting — either the port is already accepting, OR the readiness wait elapsed but the process is still alive (a cold start still warming up). In the latter case the server is deliberately left running, not killed: killing an almost-ready server discards the warmup and forces a cold re-spawn — the root cause of "first launch hangs, relaunch works". The caller connects anyway and the connection worker retries until the server is ready.

Returns false only for a genuine launch failure: the process could not be spawned, or it exited on its own before the port opened. OutError is then populated with a clear reason, and bOutPortConflict is set to true iff the process exited with Tryll::ServerExitPortInUse (3), so callers can special-case a bind collision (retry on a different port).


function TerminateAndRelease

void FTryllManagedServerProcess::TerminateAndRelease () 

Force-terminate then release (test/CI cleanup only).


function operator=

FTryllManagedServerProcess & FTryllManagedServerProcess::operator= (
    const FTryllManagedServerProcess &
) = delete

function ~FTryllManagedServerProcess

FTryllManagedServerProcess::~FTryllManagedServerProcess () 


The documentation for this class was generated from the following file C:/_tryll/_monorepo3/tryll/clients/unreal/Source/TryllClient/Public/TryllManagedServerProcess.h