diff options
| author | unwox <me@unwox.com> | 2025-10-30 17:22:26 +0600 |
|---|---|---|
| committer | unwox <me@unwox.com> | 2025-10-30 17:23:04 +0600 |
| commit | 8328e4d78455eaa3627455469c7517f6805c6da3 (patch) | |
| tree | 96991c3f0fce5c0b7ebf6a3a6cfa20fac9780781 /main.go | |
| parent | 06d94fe7f16e8985878a24332978731439599c4e (diff) | |
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 36 |
1 files changed, 34 insertions, 2 deletions
@@ -613,6 +613,34 @@ func main() { module["fs"] = fsModule module["image"] = imageModule module["crypto"] = cryptoModule + module["restart"] = func (l *Lua) int { + running := false + l.deferred = func () { + if running { + return + } + for i, wrk := range wrks { + if wrk.HasSameLua(l) == false { + continue + } + running = true + start := time.Now() + err := wrk.Restart() + if err != nil { + log.Printf("error restarting:\n%s\n", err.Error()) + return + } + log.Printf( + "worker %d restarted in %s\n", + i, + time.Now().Sub(start), + ) + go wrk.Listen(msgs) + } + } + + return luaOk(l, nil) + } module["on-eval"] = func (l *Lua) int { var evalFn LuaRef err := l.Scan(&evalFn) @@ -638,12 +666,16 @@ func main() { wrk := NewWorker() wrks = append(wrks, wrk) go func () { + start := time.Now() err := wrk.Start(luaArgv, module) if err != nil { log.Fatal(err) } - wrks = append(wrks, wrk) - log.Printf("worker %d started\n", i) + log.Printf( + "worker %d started in %s\n", + i, + time.Now().Sub(start), + ) wg.Add(-1) wrk.Listen(msgs) }() |
