mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Look at executing generator for fiber destructor behaviour
This commit is contained in:
parent
b9bca2dadb
commit
00be6e1aed
3 changed files with 15 additions and 1 deletions
|
@ -1,5 +1,12 @@
|
|||
--TEST--
|
||||
Fiber::getReturn() after bailout
|
||||
--SKIPIF--
|
||||
<?php
|
||||
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
|
||||
if ($zend_mm_enabled === "0") {
|
||||
die("skip Zend MM disabled");
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
|
|
@ -2,6 +2,13 @@
|
|||
Bug GH-9801 (Crash when memory limit is exceeded during generator initialization)
|
||||
--INI--
|
||||
memory_limit=16m
|
||||
--SKIPIF--
|
||||
<?php
|
||||
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
|
||||
if ($zend_mm_enabled === "0") {
|
||||
die("skip Zend MM disabled");
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ static void zend_generator_dtor_storage(zend_object *object) /* {{{ */
|
|||
|
||||
/* Generator is running in a suspended fiber.
|
||||
* Will be dtor during fiber dtor */
|
||||
if (generator->flags & ZEND_GENERATOR_IN_FIBER) {
|
||||
if (zend_generator_get_current(generator)->flags & ZEND_GENERATOR_IN_FIBER) {
|
||||
/* Prevent finally blocks from yielding */
|
||||
generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue