fiber-status.phpt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. --TEST--
  2. Fiber status methods
  3. --FILE--
  4. <?php
  5. $fiber = new Fiber(function (): void {
  6. $fiber = Fiber::getCurrent();
  7. echo "\nWithin Fiber:\n";
  8. var_dump($fiber->isStarted());
  9. var_dump($fiber->isRunning());
  10. var_dump($fiber->isSuspended());
  11. var_dump($fiber->isTerminated());
  12. $nested = new Fiber(function () use ($fiber): void {
  13. echo "\nWithin Nested Fiber:\n";
  14. var_dump($fiber->isStarted());
  15. var_dump($fiber->isRunning());
  16. var_dump($fiber->isSuspended());
  17. var_dump($fiber->isTerminated());
  18. Fiber::suspend();
  19. });
  20. $nested->start();
  21. Fiber::suspend();
  22. });
  23. echo "\nBefore Start:\n";
  24. var_dump($fiber->isStarted());
  25. var_dump($fiber->isRunning());
  26. var_dump($fiber->isSuspended());
  27. var_dump($fiber->isTerminated());
  28. $fiber->start();
  29. echo "\nAfter Start:\n";
  30. var_dump($fiber->isStarted());
  31. var_dump($fiber->isRunning());
  32. var_dump($fiber->isSuspended());
  33. var_dump($fiber->isTerminated());
  34. $fiber->resume();
  35. echo "\nAfter Resume:\n";
  36. var_dump($fiber->isStarted());
  37. var_dump($fiber->isRunning());
  38. var_dump($fiber->isSuspended());
  39. var_dump($fiber->isTerminated());
  40. ?>
  41. --EXPECT--
  42. Before Start:
  43. bool(false)
  44. bool(false)
  45. bool(false)
  46. bool(false)
  47. Within Fiber:
  48. bool(true)
  49. bool(true)
  50. bool(false)
  51. bool(false)
  52. Within Nested Fiber:
  53. bool(true)
  54. bool(true)
  55. bool(false)
  56. bool(false)
  57. After Start:
  58. bool(true)
  59. bool(false)
  60. bool(true)
  61. bool(false)
  62. After Resume:
  63. bool(true)
  64. bool(false)
  65. bool(false)
  66. bool(true)