mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-09 08:41:31 +00:00
[idd] scheduler: preserve concurrent force requests
Replace the shared force and republish booleans with request tickets. A completed publication now acknowledges only requests captured when it began, so a concurrent immediate or cadence-break request survives.
This commit is contained in:
@@ -39,6 +39,8 @@ public:
|
||||
uint32_t epoch;
|
||||
uint64_t period;
|
||||
uint64_t targetSlack;
|
||||
uint64_t forceTicket;
|
||||
uint64_t republishTicket;
|
||||
};
|
||||
|
||||
private:
|
||||
@@ -65,10 +67,14 @@ private:
|
||||
Client m_clients[LGMP_MAX_CLIENTS] = {};
|
||||
Schedule m_schedule = {};
|
||||
bool m_scheduling = false;
|
||||
bool m_forceNext = false;
|
||||
bool m_republishNext = false;
|
||||
uint32_t m_epoch = 0;
|
||||
|
||||
// A result acknowledges only the request tickets captured by its attempt.
|
||||
uint64_t m_forceRequestTicket = 0;
|
||||
uint64_t m_forceAckTicket = 0;
|
||||
uint64_t m_republishRequestTicket = 0;
|
||||
uint64_t m_republishAckTicket = 0;
|
||||
|
||||
uint64_t m_lastArrival = 0;
|
||||
uint64_t m_guestPeriod = 0;
|
||||
uint64_t m_workEstimate = 0;
|
||||
|
||||
Reference in New Issue
Block a user