@@ -20,12 +20,12 @@ type workerThread struct {
2020 dummyContext * frankenPHPContext
2121 workerContext * frankenPHPContext
2222 backoff * exponentialBackoff
23- externalWorker WorkerExtension
23+ externalWorker Worker
2424 isBootingScript bool // true if the worker has not reached frankenphp_handle_request yet
2525}
2626
2727func convertToWorkerThread (thread * phpThread , worker * worker ) {
28- externalWorker := externalWorkers [worker .name ]
28+ externalWorker := extensionWorkers [worker .name ]
2929
3030 thread .setHandler (& workerThread {
3131 state : thread .state ,
@@ -204,7 +204,11 @@ func (handler *workerThread) waitForWorkerRequest() (bool, any) {
204204 handler .workerContext = fc
205205 handler .state .markAsWaiting (false )
206206
207- logger .LogAttrs (ctx , slog .LevelDebug , "request handling started" , slog .String ("worker" , handler .worker .name ), slog .Int ("thread" , handler .thread .threadIndex ), slog .String ("url" , fc .request .RequestURI ))
207+ if fc .request == nil {
208+ logger .LogAttrs (ctx , slog .LevelDebug , "request handling started" , slog .String ("worker" , handler .worker .name ), slog .Int ("thread" , handler .thread .threadIndex ))
209+ } else {
210+ logger .LogAttrs (ctx , slog .LevelDebug , "request handling started" , slog .String ("worker" , handler .worker .name ), slog .Int ("thread" , handler .thread .threadIndex ), slog .String ("url" , fc .request .RequestURI ))
211+ }
208212
209213 return true , fc .handlerParameters
210214}
@@ -217,10 +221,18 @@ func go_frankenphp_worker_handle_request_start(threadIndex C.uintptr_t) (C.bool,
217221 hasRequest , parameters := handler .waitForWorkerRequest ()
218222
219223 if parameters != nil {
220- p := PHPValue (parameters )
221- handler .thread .Pin (p )
224+ var ptr unsafe.Pointer
225+
226+ switch p := parameters .(type ) {
227+ case unsafe.Pointer :
228+ ptr = p
222229
223- return C .bool (hasRequest ), p
230+ default :
231+ ptr = PHPValue (ptr )
232+ }
233+ handler .thread .Pin (ptr )
234+
235+ return C .bool (hasRequest ), ptr
224236 }
225237
226238 return C .bool (hasRequest ), nil
@@ -239,7 +251,11 @@ func go_frankenphp_finish_worker_request(threadIndex C.uintptr_t, retval *C.zval
239251 fc .closeContext ()
240252 thread .handler .(* workerThread ).workerContext = nil
241253
242- fc .logger .LogAttrs (context .Background (), slog .LevelDebug , "request handling finished" , slog .String ("worker" , fc .scriptFilename ), slog .Int ("thread" , thread .threadIndex ), slog .String ("url" , fc .request .RequestURI ))
254+ if fc .request == nil {
255+ fc .logger .LogAttrs (context .Background (), slog .LevelDebug , "request handling finished" , slog .String ("worker" , fc .scriptFilename ), slog .Int ("thread" , thread .threadIndex ))
256+ } else {
257+ fc .logger .LogAttrs (context .Background (), slog .LevelDebug , "request handling finished" , slog .String ("worker" , fc .scriptFilename ), slog .Int ("thread" , thread .threadIndex ), slog .String ("url" , fc .request .RequestURI ))
258+ }
243259}
244260
245261// when frankenphp_finish_request() is directly called from PHP
0 commit comments