File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change 1+ --TEST--
2+ Bug GH-9916 012 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes)
3+ --FILE--
4+ <?php
5+
6+ $ gen = (function () {
7+ yield from (function () { yield ; })();
8+ })();
9+ $ fiber = new Fiber (function () use ($ gen ) {
10+ $ gen ->current ();
11+ });
12+ $ fiber ->start ();
13+
14+ ?>
15+ ==DONE==
16+ --EXPECT--
17+ ==DONE==
Original file line number Diff line number Diff line change @@ -747,7 +747,7 @@ ZEND_API void zend_generator_resume(zend_generator *orig_generator) /* {{{ */
747747 zend_observer_fcall_end (generator -> execute_data , & generator -> value );
748748 }
749749 }
750- generator -> flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING ;
750+ generator -> flags &= ~( ZEND_GENERATOR_CURRENTLY_RUNNING | ZEND_GENERATOR_IN_FIBER ) ;
751751
752752 generator -> frozen_call_stack = NULL ;
753753 if (EXPECTED (generator -> execute_data ) &&
@@ -787,7 +787,6 @@ ZEND_API void zend_generator_resume(zend_generator *orig_generator) /* {{{ */
787787 goto try_again ;
788788 }
789789
790- generator -> flags &= ~ZEND_GENERATOR_IN_FIBER ;
791790 orig_generator -> flags &= ~ZEND_GENERATOR_DO_INIT ;
792791}
793792/* }}} */
You can’t perform that action at this time.
0 commit comments