unfinished-fiber-with-finally.phpt 516 B

123456789101112131415161718192021222324252627282930
  1. --TEST--
  2. Test unfinished fiber with finally block
  3. --FILE--
  4. <?php
  5. $fiber = new Fiber(function (): void {
  6. try {
  7. echo "fiber\n";
  8. echo Fiber::suspend();
  9. echo "after suspend\n";
  10. } catch (Throwable $exception) {
  11. echo "exit exception caught!\n";
  12. } finally {
  13. echo "finally\n";
  14. }
  15. echo "end of fiber should not be reached\n";
  16. });
  17. $fiber->start();
  18. unset($fiber); // Destroy fiber object, executing finally block.
  19. echo "done\n";
  20. ?>
  21. --EXPECT--
  22. fiber
  23. finally
  24. done