File tree 2 files changed +18
-2
lines changed
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) /* {{{ */
747
747
zend_observer_fcall_end (generator -> execute_data , & generator -> value );
748
748
}
749
749
}
750
- generator -> flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING ;
750
+ generator -> flags &= ~( ZEND_GENERATOR_CURRENTLY_RUNNING | ZEND_GENERATOR_IN_FIBER ) ;
751
751
752
752
generator -> frozen_call_stack = NULL ;
753
753
if (EXPECTED (generator -> execute_data ) &&
@@ -787,7 +787,6 @@ ZEND_API void zend_generator_resume(zend_generator *orig_generator) /* {{{ */
787
787
goto try_again ;
788
788
}
789
789
790
- generator -> flags &= ~ZEND_GENERATOR_IN_FIBER ;
791
790
orig_generator -> flags &= ~ZEND_GENERATOR_DO_INIT ;
792
791
}
793
792
/* }}} */
You can’t perform that action at this time.
0 commit comments