]> git.lizzy.rs Git - hydra-dragonfire.git/commitdiff
Handle SIGUSR1 by printing stack trace
authorElias Fleckenstein <eliasfleckenstein@web.de>
Wed, 8 Jun 2022 23:00:19 +0000 (01:00 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Wed, 8 Jun 2022 23:00:19 +0000 (01:00 +0200)
hydra.go

index 5b29a7516fde0f972c55a9039f2a4adf9b9fbf34..2d5d9e3f9b073c3de5364f0b1d029190c0bbd2d4 100644 (file)
--- a/hydra.go
+++ b/hydra.go
@@ -5,6 +5,7 @@ import (
        "github.com/yuin/gopher-lua"
        "os"
        "os/signal"
+       "runtime/pprof"
        "syscall"
        "time"
 )
@@ -72,6 +73,15 @@ func main() {
        signalChannel = make(chan os.Signal, 1)
        signal.Notify(signalChannel, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP)
 
+       go func() {
+               ch := make(chan os.Signal, 1)
+               signal.Notify(ch, syscall.SIGUSR1)
+               for {
+                       <-ch
+                       pprof.Lookup("goroutine").WriteTo(os.Stdout, 1)
+               }
+       }()
+
        l := lua.NewState()
        defer l.Close()