mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
810fb59f66
The start/resume/throw execute_data is now attached as the prev_execute_data to the bottom frame of the fiber stack when the fiber is running.
31 lines
676 B
PHP
31 lines
676 B
PHP
--TEST--
|
|
Test throwing from fiber
|
|
--FILE--
|
|
<?php
|
|
|
|
$fiber = new Fiber(function (): void {
|
|
$fiber = new Fiber(function (int $x, int $y): void {
|
|
Fiber::suspend($x + $y);
|
|
throw new Exception('test');
|
|
});
|
|
|
|
$value = $fiber->start(1, 2);
|
|
var_dump($value);
|
|
$fiber->resume($value);
|
|
});
|
|
|
|
$fiber->start();
|
|
|
|
?>
|
|
--EXPECTF--
|
|
int(3)
|
|
|
|
Fatal error: Uncaught Exception: test in %sfailing-nested-fiber.php:6
|
|
Stack trace:
|
|
#0 [internal function]: {closure}(1, 2)
|
|
#1 %sfailing-nested-fiber.php(%d): Fiber->resume(3)
|
|
#2 [internal function]: {closure}()
|
|
#3 %sfailing-nested-fiber.php(%d): Fiber->start()
|
|
#4 {main}
|
|
thrown in %sfailing-nested-fiber.php on line %d
|