@@ -39,7 +39,7 @@ type App struct {
3939 P * gs_conf.AppConfig // Application configuration
4040
4141 exiting atomic.Bool // Indicates whether the application is shutting down
42- Ctx context.Context // Root context for managing cancellation
42+ ctx context.Context // Root context for managing cancellation
4343 cancel context.CancelFunc // Function to cancel the root context
4444 wg sync.WaitGroup // WaitGroup to track running jobs and servers
4545
@@ -57,7 +57,7 @@ func NewApp() *App {
5757 return & App {
5858 C : gs_core .New (),
5959 P : gs_conf .NewAppConfig (),
60- Ctx : ctx ,
60+ ctx : ctx ,
6161 cancel : cancel ,
6262 }
6363}
@@ -98,7 +98,7 @@ func (app *App) Start() error {
9898 if app .EnableJobs {
9999 for _ , job := range app .Jobs {
100100 app .wg .Add (1 )
101- goutil .GoFunc ( func () {
101+ goutil .Go ( app . ctx , func (ctx context. Context ) {
102102 defer app .wg .Done ()
103103 defer func () {
104104 // Handle unexpected panics by shutting down the app
@@ -107,8 +107,8 @@ func (app *App) Start() error {
107107 panic (r )
108108 }
109109 }()
110- if err := job .Run (app . Ctx ); err != nil {
111- log .Errorf (context . Background () , log .TagAppDef , "job run error: %v" , err )
110+ if err := job .Run (ctx ); err != nil {
111+ log .Errorf (ctx , log .TagAppDef , "job run error: %v" , err )
112112 app .ShutDown ()
113113 }
114114 })
@@ -121,7 +121,7 @@ func (app *App) Start() error {
121121 for _ , svr := range app .Servers {
122122 sig .Add ()
123123 app .wg .Add (1 )
124- goutil .GoFunc ( func () {
124+ goutil .Go ( app . ctx , func (ctx context. Context ) {
125125 defer app .wg .Done ()
126126 defer func () {
127127 // Handle server panics by intercepting readiness and shutting down
@@ -133,22 +133,22 @@ func (app *App) Start() error {
133133 }()
134134 err := svr .ListenAndServe (sig )
135135 if err != nil && ! errors .Is (err , http .ErrServerClosed ) {
136- log .Errorf (context . Background () , log .TagAppDef , "server serve error: %v" , err )
136+ log .Errorf (ctx , log .TagAppDef , "server serve error: %v" , err )
137137 sig .Intercept ()
138138 app .ShutDown ()
139139 } else {
140- log .Infof (context . Background () , log .TagAppDef , "server closed" )
140+ log .Infof (ctx , log .TagAppDef , "server closed" )
141141 }
142142 })
143143 }
144144
145145 // Wait for all servers to be ready
146146 sig .Wait ()
147147 if sig .Intercepted () {
148- log .Infof (context . Background () , log .TagAppDef , "server intercepted" )
148+ log .Infof (app . ctx , log .TagAppDef , "server intercepted" )
149149 return util .FormatError (nil , "server intercepted" )
150150 }
151- log .Infof (context . Background () , log .TagAppDef , "ready to serve requests" )
151+ log .Infof (app . ctx , log .TagAppDef , "ready to serve requests" )
152152 sig .Close ()
153153 }
154154 return nil
@@ -158,19 +158,19 @@ func (app *App) Start() error {
158158// and then gracefully stops all servers and jobs.
159159func (app * App ) WaitForShutdown () {
160160 // Wait until the application context is cancelled (triggered by ShutDown)
161- <- app .Ctx .Done ()
161+ <- app .ctx .Done ()
162162
163163 // Gracefully shut down all running servers
164164 for _ , svr := range app .Servers {
165- goutil .GoFunc ( func () {
166- if err := svr .Shutdown (app . Ctx ); err != nil {
167- log .Errorf (context . Background () , log .TagAppDef , "shutdown server failed: %v" , err )
165+ goutil .Go ( app . ctx , func (ctx context. Context ) {
166+ if err := svr .Shutdown (context . Background () ); err != nil {
167+ log .Errorf (ctx , log .TagAppDef , "shutdown server failed: %v" , err )
168168 }
169169 })
170170 }
171171 app .wg .Wait ()
172172 app .C .Close ()
173- log .Infof (context . Background () , log .TagAppDef , "shutdown complete" )
173+ log .Infof (app . ctx , log .TagAppDef , "shutdown complete" )
174174}
175175
176176// Exiting returns whether the application is currently in the process of shutting down.
@@ -182,7 +182,7 @@ func (app *App) Exiting() bool {
182182// setting the exiting flag and cancelling the root context.
183183func (app * App ) ShutDown () {
184184 if app .exiting .CompareAndSwap (false , true ) {
185- log .Infof (context . Background () , log .TagAppDef , "shutting down" )
185+ log .Infof (app . ctx , log .TagAppDef , "shutting down" )
186186 app .cancel ()
187187 }
188188}
0 commit comments