[client] scheduler: serialize cadence controls

Keep one accepted frame-schedule control in flight until LGMP reports
that its serial has been consumed. Retain ambiguous tokens across pointer
queue recovery instead of retransmitting RESET or IMMEDIATE messages.

Back off acknowledgement polling and definite enqueue failures. Use modular
serial comparison so acknowledgement remains correct across rollover.
This commit is contained in:
Geoffrey McRae
2026-08-06 17:00:59 +10:00
parent fb1fb8447e
commit 1040683a3a
2 changed files with 79 additions and 15 deletions

View File

@@ -1321,7 +1321,8 @@ static LG_TransportStatus lgmp_controlStatus(LG_Transport * this,
if (status != LGMP_OK)
return status == LGMP_ERR_INVALID_SESSION ? LG_TRANSPORT_DISCONNECTED :
LG_TRANSPORT_ERROR;
return serial >= token ? LG_TRANSPORT_OK : LG_TRANSPORT_UNAVAILABLE;
return (int32_t)(serial - (uint32_t)token) >= 0 ?
LG_TRANSPORT_OK : LG_TRANSPORT_UNAVAILABLE;
}
const LG_TransportOps LGT_LGMP =