From ccdf8c03eea24d7dd321cac3e58ec368c7f751ca Mon Sep 17 00:00:00 2001 From: William Bell Date: Sun, 30 Jul 2023 00:43:34 +0200 Subject: [PATCH] wait for threads to complete --- src/main.go | 3 +++ src/thread.go | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/src/main.go b/src/main.go index 9bd09bb..686c723 100644 --- a/src/main.go +++ b/src/main.go @@ -66,4 +66,7 @@ func main() { panicErr(err) os.Exit(1) } + if threadCount > 0 { + <-threadChan + } } diff --git a/src/thread.go b/src/thread.go index aaf3726..93f4437 100644 --- a/src/thread.go +++ b/src/thread.go @@ -4,6 +4,9 @@ import ( "fmt" ) +var threadCount = 0 +var threadChan = make(chan bool) + func ArThread(args ...any) (any, ArErr) { if len(args) != 1 { return nil, ArErr{TYPE: "TypeError", message: "Invalid number of arguments, expected 1, got " + fmt.Sprint(len(args)), EXISTS: true} @@ -36,8 +39,13 @@ func ArThread(args ...any) (any, ArErr) { } hasrun = true go func() { + threadCount++ resp, err = runCall(call{Callable: tocall, Args: []any{}}, nil, 0) wg <- true + threadCount-- + if threadCount == 0 { + threadChan <- true + } }() return nil, ArErr{} }},