summaryrefslogtreecommitdiffstats
path: root/eio-php83.patch
diff options
context:
space:
mode:
Diffstat (limited to 'eio-php83.patch')
-rw-r--r--eio-php83.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/eio-php83.patch b/eio-php83.patch
new file mode 100644
index 0000000..522897c
--- /dev/null
+++ b/eio-php83.patch
@@ -0,0 +1,28 @@
+diff --git a/php8/php_eio.c b/php8/php_eio.c
+index e79d10f..c87ca82 100644
+--- a/php8/php_eio.c
++++ b/php8/php_eio.c
+@@ -479,6 +479,10 @@ static void php_eio_custom_execute(eio_req *req)
+ ZVAL_NULL(&zarg);
+ }
+
++#ifdef ZEND_CHECK_STACK_LIMIT
++ zend_call_stack_init();
++#endif
++
+ zend_call_method(Z_ISUNDEF(pf->obj) ? NULL : Z_OBJ_P(&pf->obj), pf->ce, &pf->func_ptr,
+ ZSTR_VAL(pf->func_ptr->common.function_name),
+ ZSTR_LEN(pf->func_ptr->common.function_name),
+@@ -863,8 +867,11 @@ static inline void php_eio_init()
+ pid_t cur_pid = getpid();
+
+ if (php_eio_pid <= 0 || (php_eio_pid > 0 && cur_pid != php_eio_pid)) {
+- /* Uninitialized or forked a process(which needs it's own eio pipe) */
++#ifdef ZEND_CHECK_STACK_LIMIT
++ zend_call_stack_init();
++#endif
+
++ /* Uninitialized or forked a process(which needs it's own eio pipe) */
+ if (php_eio_pipe_new()) {
+ php_error_docref(NULL, E_ERROR,
+ "Failed creating internal pipe: %s", strerror(errno));