From bf27774a86f39a7bb2fa73a4938e03676e314d4b 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 | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/sampled_values/sv_subscriber.c b/src/sampled_values/sv_subscriber.c index 78865653..568a6a14 100644 --- a/src/sampled_values/sv_subscriber.c +++ b/src/sampled_values/sv_subscriber.c @@ -156,17 +156,30 @@ 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); + return NULL; }