From cae471d4bced5f7490cc18e86b50e51df64ddb7b Mon Sep 17 00:00:00 2001 From: unwox Date: Thu, 13 Jun 2024 14:07:23 +0600 Subject: make evaluation of custom lua code thread-safe --- main.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 7575c11..6c993fb 100644 --- a/main.go +++ b/main.go @@ -1,19 +1,25 @@ package main import ( + "bufio" + "flag" "fmt" "log" "net/http" + "os" "time" ) func main() { - rch := make(chan *WorkerRequest, 4096) + debug := flag.Bool("debug", false, "Debug mode!") + flag.Parse() + + readCh := make(chan interface{}, 4096) mux := http.NewServeMux() wrks := []*Worker{} for i := 0; i < 8; i++ { log.Printf("worker %d started\n", i) - wrk := NewWorker(rch) + wrk := NewWorker(readCh) err := wrk.Start("init.lua") if err != nil { log.Fatal(err) @@ -54,7 +60,7 @@ func main() { for { text, _ := reader.ReadString('\n') for _, w := range wrks { - err := w.Eval(text) + err := <- w.Eval(text) if err != nil { log.Printf("error: %s\n", err) break -- cgit v1.2.3