[idd] scheduler: reserve slots for frame subscribers

Replace the oldest provisional schedule entry when the bounded client
table has no empty slot. Never evict a client whose frame subscription has
already been observed.

This prevents rapid failed reconnects from filling every scheduler slot
before a real frame subscriber can be registered.
This commit is contained in:
Geoffrey McRae
2026-08-06 16:57:12 +10:00
parent ece6afd74e
commit 3e9dadf340
2 changed files with 37 additions and 18 deletions

View File

@@ -114,6 +114,7 @@ private:
uint64_t m_lastLogPublished = 0;
Client * FindClient(uint32_t clientID);
Client * FindOrAllocateClient(uint32_t clientID);
Publication * FindPublication(const Schedule& schedule,
uint32_t frameSerial);
bool ElectOwner(uint64_t now, uint32_t resetClientID = 0);