MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / exitSignal

Function exitSignal

IceFireDB-SQLite/main.go:69–89  ·  view source on GitHub ↗
(cancel context.CancelFunc, stop chan struct{})

Source from the content-addressed store, hash-verified

67}
68
69func exitSignal(cancel context.CancelFunc, stop chan struct{}) error {
70 sigs := make(chan os.Signal, 1)
71 signal.Notify(sigs, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
72 for sig := range sigs {
73 switch sig {
74 case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
75 cancel()
76
77 select {
78 case <-stop:
79 fmt.Println("shutdown")
80 case <-time.After(time.Second * 5):
81 fmt.Println("timeout forced shutdown")
82 }
83 os.Exit(0)
84 case syscall.SIGHUP:
85 fmt.Println("catch syscall.SIGHUP")
86 }
87 }
88 return nil
89}

Callers 1

mainFunction · 0.70

Calls 1

ExitMethod · 0.45

Tested by

no test coverage detected