mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[MG_Remote] (Disaggregated): P5e ra - the run-ahead latch goes down with the session
- CONTRACT-P5E §1. The latch means "what THIS session's first caps adoption said", and ClientSession is a process singleton that Start/Stop can cycle. Left standing, a second Start would inherit a verdict about a server that is gone - and because a later snapshot may only turn run-ahead OFF, an inherited `true` could never be corrected by the honest answer arriving afterwards. - The present serial resets with it: a credit's id space belongs to the session that paces on it, and a server that never saw frame 1 cannot return its credit.
This commit is contained in:
@@ -802,6 +802,14 @@ namespace MobileGL::MG_Remote::Client {
|
||||
m_serverTransport.reset();
|
||||
m_transport = nullptr;
|
||||
m_started = false;
|
||||
// P5e (ra, §1): the LATCH GOES DOWN WITH THE SESSION. It is "what the first caps
|
||||
// adoption of THIS session said", and a session that starts again - the same singleton,
|
||||
// a second Start - must take it again from that session's own first snapshot rather
|
||||
// than inherit a verdict about a server that is gone. The present serial goes with it
|
||||
// for the same reason: the credit's id space belongs to the session that paces on it.
|
||||
m_runAheadArmed = false;
|
||||
m_runAheadLatched = false;
|
||||
m_presentsSent = 0;
|
||||
if (g_active == this) {
|
||||
g_active = nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user