mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +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--
|
--TEST--
|
||||||
Fiber::getReturn() after bailout
|
Fiber::getReturn() after bailout
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
|
||||||
|
if ($zend_mm_enabled === "0") {
|
||||||
|
die("skip Zend MM disabled");
|
||||||
|
}
|
||||||
|
?>
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,13 @@
|
||||||
Bug GH-9801 (Crash when memory limit is exceeded during generator initialization)
|
Bug GH-9801 (Crash when memory limit is exceeded during generator initialization)
|
||||||
--INI--
|
--INI--
|
||||||
memory_limit=16m
|
memory_limit=16m
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
|
||||||
|
if ($zend_mm_enabled === "0") {
|
||||||
|
die("skip Zend MM disabled");
|
||||||
|
}
|
||||||
|
?>
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
|
@ -225,7 +225,7 @@ static void zend_generator_dtor_storage(zend_object *object) /* {{{ */
|
||||||
|
|
||||||
/* Generator is running in a suspended fiber.
|
/* Generator is running in a suspended fiber.
|
||||||
* Will be dtor during fiber dtor */
|
* 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 */
|
/* Prevent finally blocks from yielding */
|
||||||
generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
|
generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue