INI-настройки

Расширение TrueAsync добавляет следующие директивы в php.ini.

Список директив

Директива Значение по умолчанию Область Описание
async.debug_deadlock 1 PHP_INI_ALL Включает вывод диагностического отчёта при обнаружении дедлока

async.debug_deadlock

Тип: bool Значение по умолчанию: 1 (включено) Область: PHP_INI_ALL — можно менять в php.ini, .htaccess, .user.ini и через ini_set().

Когда включена, эта директива активирует подробный диагностический вывод при обнаружении дедлока в планировщике. Если планировщик обнаруживает, что все корутины заблокированы и нет активных событий, он выводит отчёт перед тем, как выбросить Async\DeadlockError.

Что содержит отчёт

Пример вывода

=== DEADLOCK REPORT START ===
Coroutines waiting: 2, active_events: 0

Coroutine 1
  spawn: /app/server.php:15
  suspend: /app/server.php:22
  waiting for:
    - Channel recv (capacity: 0, senders: 0, receivers: 1)

Coroutine 2
  spawn: /app/server.php:28
  suspend: /app/server.php:35
  waiting for:
    - Channel recv (capacity: 0, senders: 0, receivers: 1)

=== DEADLOCK REPORT END ===

Fatal error: Uncaught Async\DeadlockError: ...

Примеры

Отключение через php.ini

async.debug_deadlock = 0

Отключение через ini_set()

<?php
// Отключить диагностику дедлоков в рантайме
ini_set('async.debug_deadlock', '0');
?>

Отключение для тестов

; phpunit.xml или .phpt файл
async.debug_deadlock=0

Смотрите также