@@ -4075,6 +4075,14 @@ ZEND_VM_HOT_HANDLER(129, ZEND_DO_ICALL, ANY, ANY, SPEC(RETVAL,OBSERVER))
4075
4075
#endif
4076
4076
ZEND_OBSERVER_FCALL_END (call , EG (exception ) ? NULL : ret );
4077
4077
4078
+ if (UNEXPECTED (zend_atomic_bool_load_ex (& EG (vm_interrupt )))) {
4079
+ if (zend_atomic_bool_load_ex (& EG (timed_out ))) {
4080
+ zend_timeout ();
4081
+ } else if (zend_interrupt_function ) {
4082
+ zend_interrupt_function (execute_data );
4083
+ }
4084
+ }
4085
+
4078
4086
EG (current_execute_data ) = execute_data ;
4079
4087
zend_vm_stack_free_args (call );
4080
4088
@@ -4197,6 +4205,14 @@ ZEND_VM_HOT_HANDLER(131, ZEND_DO_FCALL_BY_NAME, ANY, ANY, SPEC(RETVAL,OBSERVER))
4197
4205
#endif
4198
4206
ZEND_OBSERVER_FCALL_END (call , EG (exception ) ? NULL : ret );
4199
4207
4208
+ if (UNEXPECTED (zend_atomic_bool_load_ex (& EG (vm_interrupt )))) {
4209
+ if (zend_atomic_bool_load_ex (& EG (timed_out ))) {
4210
+ zend_timeout ();
4211
+ } else if (zend_interrupt_function ) {
4212
+ zend_interrupt_function (execute_data );
4213
+ }
4214
+ }
4215
+
4200
4216
EG (current_execute_data ) = execute_data ;
4201
4217
4202
4218
ZEND_VM_C_GOTO (fcall_by_name_end );
@@ -4318,6 +4334,14 @@ ZEND_VM_HOT_HANDLER(60, ZEND_DO_FCALL, ANY, ANY, SPEC(RETVAL,OBSERVER))
4318
4334
#endif
4319
4335
ZEND_OBSERVER_FCALL_END (call , EG (exception ) ? NULL : ret );
4320
4336
4337
+ if (UNEXPECTED (zend_atomic_bool_load_ex (& EG (vm_interrupt )))) {
4338
+ if (zend_atomic_bool_load_ex (& EG (timed_out ))) {
4339
+ zend_timeout ();
4340
+ } else if (zend_interrupt_function ) {
4341
+ zend_interrupt_function (execute_data );
4342
+ }
4343
+ }
4344
+
4321
4345
EG (current_execute_data ) = execute_data ;
4322
4346
4323
4347
ZEND_VM_C_GOTO (fcall_end );
0 commit comments