From 2bf438fe7b1e242f6188732b9dd93f9a2ac9bc83 Mon Sep 17 00:00:00 2001 From: Cedric Boudinet Date: Fri, 25 Dec 2020 21:24:27 +0100 Subject: [PATCH] Changing svReceiverLoop to reduce latency --- src/sampled_values/sv_subscriber.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/sampled_values/sv_subscriber.c b/src/sampled_values/sv_subscriber.c index fb1cae6c..24c890b0 100644 --- a/src/sampled_values/sv_subscriber.c +++ b/src/sampled_values/sv_subscriber.c @@ -156,13 +156,24 @@ 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_GOOSE_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;