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 @@ -761,7 +761,7 @@ ZEND_API void zend_generator_resume(zend_generator *orig_generator) /* {{{ */
761
761
zend_observer_fcall_end (generator -> execute_data , & generator -> value );
762
762
}
763
763
}
764
- generator -> flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING ;
764
+ generator -> flags &= ~( ZEND_GENERATOR_CURRENTLY_RUNNING | ZEND_GENERATOR_IN_FIBER ) ;
765
765
766
766
generator -> frozen_call_stack = NULL ;
767
767
if (EXPECTED (generator -> execute_data ) &&
@@ -801,7 +801,6 @@ ZEND_API void zend_generator_resume(zend_generator *orig_generator) /* {{{ */
801
801
goto try_again ;
802
802
}
803
803
804
- generator -> flags &= ~ZEND_GENERATOR_IN_FIBER ;
805
804
orig_generator -> flags &= ~ZEND_GENERATOR_DO_INIT ;
806
805
}
807
806
/* }}} */
You can’t perform that action at this time.
0 commit comments