Skip to content

Commit 774bc76

Browse files
committed
Fixed VM interrupt handling
1 parent 4b13985 commit 774bc76

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

ext/opcache/jit/zend_jit_vm_helpers.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,9 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,
742742
if (rc < 0) {
743743
stop = ZEND_JIT_TRACE_STOP_RETURN_HALT;
744744
break;
745+
} else if (execute_data == EG(current_execute_data)) {
746+
/* return after interrupt handler */
747+
rc = 0;
745748
}
746749
execute_data = EG(current_execute_data);
747750
opline = EX(opline);
@@ -763,7 +766,9 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,
763766
#ifdef HAVE_GCC_GLOBAL_REGS
764767
if (execute_data->prev_execute_data == prev_execute_data) {
765768
#else
766-
if (rc == 1) {
769+
if (rc == 0) {
770+
/* pass */
771+
} else if (rc == 1) {
767772
#endif
768773
/* Enter into function */
769774
prev_call = NULL;

0 commit comments

Comments
 (0)