Browse Source
Interrupt while internal frame is on the stack (#14627)
Interrupt while internal frame is on the stack (#14627)
* Check VM interrupt while internal frame is on top * Use tab instead of spaces * fix frame used in interrupt and refactor * remove unused failures for zend_jit_check_timeout * Fix JIT support Co-authored-by: Bob Weinand <bobwei9@hotmail.com> * Fix the missing store to vm_interrupt * Rename new functions * Special case zend_interrupt_function in JIT code * refactor to use ZEND_VM_SET_OPCODE_NO_INTERRUPT * Split atomic exchange into load + store It is difficult to determine performance of atomics sometimes. In this case, the separate load+store is still correct, and a load does not cause a modification, and might be faster for some platforms than an exchange. A load+store is slower than an exchange, but we're fine trading the penalty to the slow path and keeping the happy path faster. --------- Co-authored-by: Bob Weinand <bobwei9@hotmail.com>pull/15756/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 122 additions and 47 deletions
-
5UPGRADING.INTERNALS
-
11Zend/tests/fibers/signal-async.phpt
-
15Zend/zend.h
-
23Zend/zend_execute.c
-
5Zend/zend_execute.h
-
12Zend/zend_system_id.c
-
10Zend/zend_vm_def.h
-
36Zend/zend_vm_execute.h
-
4ext/opcache/jit/zend_jit.c
-
48ext/opcache/jit/zend_jit_ir.c
Write
Preview
Loading…
Cancel
Save
Reference in new issue