Skip to content

Commit 7c28f3d

Browse files
committed
don't wait for resetting in php 8.2
1 parent e9533b8 commit 7c28f3d

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

frankenphp.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ func restartThreadsAndOpcacheReset(withRegularThreads bool) {
777777

778778
threadsToRestart := drainThreads(withRegularThreads)
779779

780-
// on 8.2 debian it segfaults, skip opcache reset
780+
// on 8.2 opcache_reset() segfaults, skip it entirely
781781
if Version().VersionID >= 80300 {
782782
opcacheResetOnce = sync.Once{}
783783
opcacheResetWg := sync.WaitGroup{}
@@ -787,7 +787,6 @@ func restartThreadsAndOpcacheReset(withRegularThreads bool) {
787787
thread.state.WaitFor(state.OpcacheResettingDone)
788788
})
789789
}
790-
791790
opcacheResetWg.Wait()
792791
}
793792

threadregular.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,11 @@ func (handler *regularThread) beforeScriptExecution() string {
5050
return handler.waitForRequest()
5151
case state.Restarting:
5252
handler.state.Set(state.Yielding)
53-
handler.state.WaitFor(state.OpcacheResetting)
54-
scheduleOpcacheReset(handler.thread)
55-
handler.state.Set(state.OpcacheResettingDone)
53+
if Version().VersionID >= 80300 {
54+
handler.state.WaitFor(state.OpcacheResetting)
55+
scheduleOpcacheReset(handler.thread)
56+
handler.state.Set(state.OpcacheResettingDone)
57+
}
5658
handler.state.WaitFor(state.Ready, state.ShuttingDown)
5759
return handler.beforeScriptExecution()
5860

threadworker.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,11 @@ func (handler *workerThread) beforeScriptExecution() string {
5151
handler.worker.onThreadShutdown(handler.thread.threadIndex)
5252
}
5353
handler.state.Set(state.Yielding)
54-
handler.state.WaitFor(state.OpcacheResetting)
55-
scheduleOpcacheReset(handler.thread)
56-
handler.state.Set(state.OpcacheResettingDone)
54+
if Version().VersionID >= 80300 {
55+
handler.state.WaitFor(state.OpcacheResetting)
56+
scheduleOpcacheReset(handler.thread)
57+
handler.state.Set(state.OpcacheResettingDone)
58+
}
5759
handler.state.WaitFor(state.Ready, state.ShuttingDown)
5860
return handler.beforeScriptExecution()
5961
case state.Ready, state.TransitionComplete:

0 commit comments

Comments
 (0)