@@ -30,11 +30,8 @@ const defaultDocumentRoot = "public"
3030
3131var iniError = errors .New ("'php_ini' must be in the format: php_ini \" <key>\" \" <value>\" " )
3232
33- // sharedState is a package-level variable to store information that can be accessed by both FrankenPHPModule and FrankenPHPApp
34- var sharedState struct {
35- ModuleIDs []uint64
36- Workers []workerConfig
37- }
33+ // FrankenPHPModule instances register their workers and FrankenPHPApp reads them at Start() time
34+ var moduleWorkers = make ([]workerConfig , 0 )
3835
3936func init () {
4037 caddy .RegisterModule (FrankenPHPApp {})
@@ -115,7 +112,7 @@ func (f *FrankenPHPApp) Start() error {
115112 frankenphp .WithMaxWaitTime (f .MaxWaitTime ),
116113 }
117114 // Add workers from FrankenPHPApp configuration
118- for _ , w := range append (f .Workers , sharedState . Workers ... ) {
115+ for _ , w := range append (f .Workers , moduleWorkers ... ) {
119116 opts = append (opts , frankenphp .WithWorkers (w .Name , repl .ReplaceKnown (w .FileName , "" ), w .Num , w .Env , w .Watch ))
120117 }
121118
@@ -141,9 +138,7 @@ func (f *FrankenPHPApp) Stop() error {
141138 f .Workers = nil
142139 f .NumThreads = 0
143140 f .MaxWaitTime = 0
144-
145- // reset moduleWorkers
146- sharedState .Workers = nil
141+ moduleWorkers = nil
147142
148143 return nil
149144}
@@ -433,7 +428,7 @@ func (f *FrankenPHPModule) Provision(ctx caddy.Context) error {
433428 }
434429
435430 if len (f .Workers ) > 0 {
436- sharedState . Workers = append (sharedState . Workers , f .Workers ... )
431+ moduleWorkers = append (moduleWorkers , f .Workers ... )
437432 }
438433
439434 return nil
0 commit comments