MCPcopy
hub / github.com/1Panel-dev/KubePi / waitSignals

Function waitSignals

thirdparty/gotty/main.go:119–149  ·  view source on GitHub ↗
(errs chan error, cancel context.CancelFunc, gracefulCancel context.CancelFunc)

Source from the content-addressed store, hash-verified

117}
118
119func waitSignals(errs chan error, cancel context.CancelFunc, gracefulCancel context.CancelFunc) error {
120 sigChan := make(chan os.Signal, 1)
121 signal.Notify(
122 sigChan,
123 syscall.SIGINT,
124 syscall.SIGTERM,
125 )
126
127 select {
128 case err := <-errs:
129 return err
130
131 case s := <-sigChan:
132 switch s {
133 case syscall.SIGINT:
134 gracefulCancel()
135 fmt.Println("C-C to force close")
136 select {
137 case err := <-errs:
138 return err
139 case <-sigChan:
140 fmt.Println("Force closing...")
141 cancel()
142 return <-errs
143 }
144 default:
145 cancel()
146 return <-errs
147 }
148 }
149}

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected