From 7d0c0f2e05b13b9e2d6c0834462740a5054b7e27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Boudinet?= Date: Sat, 2 Jan 2021 11:09:45 +0100 Subject: [PATCH] Svsub latency (#288) * Changing svReceiverLoop to reduce latency * adding EthernetHandleSet_destroy to svReceiverLoop --- src/sampled_values/sv_subscriber.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/sampled_values/sv_subscriber.c b/src/sampled_values/sv_subscriber.c index fb1cae6c..19ad6638 100644 --- a/src/sampled_values/sv_subscriber.c +++ b/src/sampled_values/sv_subscriber.c @@ -156,16 +156,28 @@ static void svReceiverLoop(void* threadParameter) { SVReceiver self = (SVReceiver) threadParameter; + EthernetHandleSet handleSet = EthernetHandleSet_new(); + EthernetHandleSet_addSocket(handleSet, self->ethSocket); self->stopped = false; while (self->running) { + switch (EthernetHandleSet_waitReady(handleSet, 100)) + { + case -1: + if (DEBUG_SV_SUBSCRIBER) + printf("SV_SUBSCRIBER: EhtnernetHandleSet_waitReady() failure\n"); + break; + case 0: + break; + default: + SVReceiver_tick(self); + } - if (SVReceiver_tick(self) == false) - Thread_sleep(1); } self->stopped = true; + EthernetHandleSet_destroy(handleSet); } void