Would it proper to introduce the following path? diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 9bed9f86bb..cf0935df74 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -8920,13 +8920,19 @@ ZEND_VM_DEFINE_OP(137, ZEND_OP_DATA);
ZEND_VM_HELPER(zend_interrupt_helper, ANY, ANY) { + int8_t interrupt_type = EG(vm_interrupt); + EG(vm_interrupt) = 0; if (EG(timed_out)) { zend_timeout(0); } else if (zend_interrupt_function) { SAVE_OPLINE(); zend_interrupt_function(execute_data); - ZEND_VM_ENTER(); + if (interrupt_type == 2) { + ZEND_VM_RETURN(); + } else { + ZEND_VM_ENTER(); + } } ZEND_VM_CONTINUE(); } > On 1 Nov 2017, at 16:54, Haitao Lv <i...@lvht.net> wrote: > > It seems that set EG(vm_interrupt) to 1 could not stop the vm execution but > only execute the interrupt_function and continue the current execution. > > However, my RFC propose to stop the current execution. > >> On 1 Nov 2017, at 16:07, Dmitry Stogov <dmi...@zend.com> wrote: >> >> Hi, >> >> It should be possible do similar things using EG(vm_interrupt) and >> zend_interrupt_function() callback (introduced in php-7.1) >> ext/pcntl implements asynchronous signal handling using this. >> >> Thanks. Dmitry. >> From: Haitao Lv <i...@lvht.net> >> Sent: Wednesday, November 1, 2017 4:19:07 AM >> To: PHP Internals >> Subject: [PHP-DEV] RFC - Zend VM Pause API >> >> Hi, internals, >> >> I propose to introduce a new zend vm pause api, and here is the RPF >> >> https://wiki.php.net/rfc/zend-vm-pause-api >> <https://wiki.php.net/rfc/zend-vm-pause-api> >> >> Please gave your comment. >> >> Thank you. >> >> >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> <http://www.php.net/unsub.php> -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php