summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorunwox <me@unwox.com>2024-06-13 14:07:23 +0600
committerunwox <me@unwox.com>2024-06-13 14:07:23 +0600
commitcae471d4bced5f7490cc18e86b50e51df64ddb7b (patch)
tree5d289199438060fdeefa2228b5a8ced05c9e34f8 /main.go
parent4374d8c5d98fbc9e2589074cd0f05266db6a10e1 (diff)
make evaluation of custom lua code thread-safe
Diffstat (limited to 'main.go')
-rw-r--r--main.go12
1 files changed, 9 insertions, 3 deletions
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