From 40e74e6bd3d397d681aeaa4389d64bda2655a2f7 Mon Sep 17 00:00:00 2001 From: qowevisa Date: Sun, 9 Jun 2024 07:38:54 +0300 Subject: [PATCH] Some stuff and profilers into server --- cmd/server/main.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/cmd/server/main.go b/cmd/server/main.go index dc5ec6d..12e6ae0 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -8,12 +8,23 @@ import ( "io" "log" "net" + "os" + "os/signal" + "sync" + "syscall" com "git.qowevisa.me/Qowevisa/gotell/communication" "git.qowevisa.me/Qowevisa/gotell/env" + "git.qowevisa.me/Qowevisa/gotell/profilers" ) +func atEnd() { + profilers.GetMemoryProfiler() +} + func main() { + cpuProfDefer := profilers.GetCPUProfiler() + defer cpuProfDefer() userCenter.Init() linkCenter.Init() connCenter.Init() @@ -41,8 +52,23 @@ func main() { if err != nil { log.Fatalf("server: listen: %s", err) } + defer listener.Close() log.Printf("server: listening on %s", service) + defer atEnd() + + var wg sync.WaitGroup + + go func() { + c := make(chan os.Signal, 1) + signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) + <-c + log.Println("received shutdown signal") + listener.Close() + wg.Wait() + os.Exit(0) + }() + for { conn, err := listener.Accept() if err != nil {