diff options
| author | unwox <me@unwox.com> | 2024-06-13 14:07:23 +0600 |
|---|---|---|
| committer | unwox <me@unwox.com> | 2024-06-13 14:07:23 +0600 |
| commit | cae471d4bced5f7490cc18e86b50e51df64ddb7b (patch) | |
| tree | 5d289199438060fdeefa2228b5a8ced05c9e34f8 /main.go | |
| parent | 4374d8c5d98fbc9e2589074cd0f05266db6a10e1 (diff) | |
make evaluation of custom lua code thread-safe
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -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 |
