From eb4397685767a102dc9864ca3d524080d0f99789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Mon, 17 Jun 2024 21:11:19 +0200 Subject: [PATCH] Fix issue with fake deadlock --- main.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 7bdfb79..877e364 100644 --- a/main.go +++ b/main.go @@ -46,17 +46,21 @@ func main() { listener.initialize() status := make(chan error) - for event := range listener.Create { - log.Printf("Create event: %+v\n", event) - eventCopy := event - go func() { - Download(eventCopy, status) - // go DownloadNative(event, status) - for status := range status { - log.Printf("Status: %s\n", status) - } - }() + for { + select { + case event := <-listener.Create: + log.Printf("Create event: %+v\n", event) + eventCopy := event + go func() { + Download(eventCopy, status) + // go DownloadNative(event, status) + for status := range status { + log.Printf("Status: %s\n", status) + } + }() + case <-time.After(1 * time.Minute): + // Perform some action or simply continue to avoid deadlock + log.Println("Consumer is alive, but has no new events.") + } } - - time.Sleep(1 * time.Hour) }