mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2026-06-17 06:11:03 +00:00
Reduce ENet retransmission delay by sleeping for shorter periods between polls
This commit is contained in:
+7
-3
@@ -471,7 +471,7 @@ static void controlReceiveThreadFunc(void* context) {
|
|||||||
while (!PltIsThreadInterrupted(&controlReceiveThread)) {
|
while (!PltIsThreadInterrupted(&controlReceiveThread)) {
|
||||||
ENetEvent event;
|
ENetEvent event;
|
||||||
|
|
||||||
// Poll every 100 ms for new packets
|
// Poll for new packets and process retransmissions
|
||||||
PltLockMutex(&enetMutex);
|
PltLockMutex(&enetMutex);
|
||||||
err = serviceEnetHost(client, &event, 0);
|
err = serviceEnetHost(client, &event, 0);
|
||||||
PltUnlockMutex(&enetMutex);
|
PltUnlockMutex(&enetMutex);
|
||||||
@@ -510,8 +510,12 @@ static void controlReceiveThreadFunc(void* context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// No events ready
|
// No events ready - sleep for a short time
|
||||||
PltSleepMsInterruptible(&controlReceiveThread, 100);
|
//
|
||||||
|
// NOTE: This sleep *directly* impacts the lowest possible retransmission
|
||||||
|
// time for packets after a loss event. If we're busy sleeping here, we can't
|
||||||
|
// retransmit a dropped packet, so we keep the sleep time to a minimum.
|
||||||
|
PltSleepMsInterruptible(&controlReceiveThread, 10);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user