mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Fix resetting ZEND_GENERATOR_IN_FIBER flag
Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
This commit is contained in:
parent
81607a62ca
commit
b9bca2dadb
17
Zend/tests/gh9916-012.phpt
Normal file
17
Zend/tests/gh9916-012.phpt
Normal file
@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Bug GH-9916 012 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$gen = (function() {
|
||||
yield from (function() { yield; })();
|
||||
})();
|
||||
$fiber = new Fiber(function() use ($gen) {
|
||||
$gen->current();
|
||||
});
|
||||
$fiber->start();
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
==DONE==
|
@ -747,7 +747,7 @@ try_again:
|
||||
zend_observer_fcall_end(generator->execute_data, &generator->value);
|
||||
}
|
||||
}
|
||||
generator->flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING;
|
||||
generator->flags &= ~(ZEND_GENERATOR_CURRENTLY_RUNNING | ZEND_GENERATOR_IN_FIBER);
|
||||
|
||||
generator->frozen_call_stack = NULL;
|
||||
if (EXPECTED(generator->execute_data) &&
|
||||
@ -787,7 +787,6 @@ try_again:
|
||||
goto try_again;
|
||||
}
|
||||
|
||||
generator->flags &= ~ZEND_GENERATOR_IN_FIBER;
|
||||
orig_generator->flags &= ~ZEND_GENERATOR_DO_INIT;
|
||||
}
|
||||
/* }}} */
|
||||
|
Loading…
Reference in New Issue
Block a user