suspend-in-nested-function.phpt 400 B

1234567891011121314151617181920212223242526272829
  1. --TEST--
  2. Suspend within nested function call
  3. --FILE--
  4. <?php
  5. function suspend(): int
  6. {
  7. return Fiber::suspend(1);
  8. }
  9. $fiber = new Fiber(function (): int {
  10. $value = suspend();
  11. return Fiber::suspend($value);
  12. });
  13. var_dump($fiber->start());
  14. var_dump($fiber->resume(2));
  15. var_dump($fiber->resume(3));
  16. var_dump($fiber->getReturn());
  17. echo "done\n";
  18. ?>
  19. --EXPECT--
  20. int(1)
  21. int(2)
  22. NULL
  23. int(3)
  24. done