bug81577.phpt 608 B

12345678910111213141516171819202122232425262728293031
  1. --TEST--
  2. Bug #81577: (Exceptions in interrupt handlers)
  3. --EXTENSIONS--
  4. pcntl
  5. posix
  6. --FILE--
  7. <?php
  8. class C {
  9. public static $cond = 1;
  10. public static $a;
  11. }
  12. C::$a = [ C::$cond ]; // make countable zval
  13. pcntl_async_signals(true);
  14. pcntl_signal(SIGTERM, function ($signo) { throw new Exception("Signal"); });
  15. for ($i = 0; $i < 5; $i++) {
  16. try {
  17. C::$a + C::$a;
  18. posix_kill(posix_getpid(), SIGTERM) + C::$cond;
  19. } catch (Throwable $ex) {
  20. echo get_class($ex) , " : " , $ex->getMessage() , "\n";
  21. }
  22. }
  23. ?>
  24. --EXPECT--
  25. Exception : Signal
  26. Exception : Signal
  27. Exception : Signal
  28. Exception : Signal
  29. Exception : Signal