From a299b95d7cfe52dfdfbd97f2c63b40d1a6e8d82d Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Fri, 6 Mar 2026 19:13:27 +0000 Subject: [PATCH] do not queue draw functions if we are already drawing --- tui/internal/controllers/streaming.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tui/internal/controllers/streaming.go b/tui/internal/controllers/streaming.go index a55d379..373de75 100644 --- a/tui/internal/controllers/streaming.go +++ b/tui/internal/controllers/streaming.go @@ -3,6 +3,7 @@ package controllers import ( "esdi/tui/internal/services" "esdi/tui/internal/views" + "sync/atomic" "github.com/gdamore/tcell/v2" ) @@ -63,10 +64,20 @@ func (sc *StreamingCtrl) registerHooks() { func (sc *StreamingCtrl) Start() { stream := sc.TelemServ.StartStream() + var isDrawing atomic.Bool + go func() { for msg := range stream { + if isDrawing.Load() { + continue + } + + isDrawing.Store(true) + sc.App.QueueUpdateDraw(func() { - sc.StreamView.Update(msg) + sc.Messages <- "got data\n" + sc.StreamView.Update(&msg) + isDrawing.Store(false) }) } }()