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

Дивіться також