Обзор
Раздел архитектуры описывает внутреннее устройство ключевых компонентов TrueAsync на уровне C-кода: структуры данных, алгоритмы, интеграцию с Zend Engine и взаимодействие между ядром PHP и async-расширением.
Эти материалы предназначены для разработчиков, которые хотят понять, как работает TrueAsync «под капотом», или планируют создавать собственные расширения.
Zend Async API (C ABI)
Сердце асинхронного ABI,
которое позволяет расширениям взаимодействовать с ядром PHP, совершать операции ввода вывода, создавать корутины.
Корутины Scheduler и Reactor
Внутреннее устройство планировщика корутин и реактора событий, включая управление очередями, обработку событий и взаимодействие с ядром.
События и событийная модель, Waker
Базовая структура данных, которая лежит в основе всех асинхронных операций и примитивов. Waker. Механизм пробуждения корутин при наступлении событий.
Асинхронный сборщик мусора
Компоненты
Async\Pool
Универсальный пул ресурсов. Описаны:
- Двухуровневая структура данных (ABI в ядре + internal в расширении)
- Алгоритмы acquire/release с FIFO-очередью ожидающих корутин
- Healthcheck через периодический таймер
- Circuit Breaker с тремя состояниями
- C API для расширений (макросы
ZEND_ASYNC_POOL_*)
PDO Pool
PDO-специфичная надстройка над Async\Pool. Описаны:
- Template-соединение и отложенное создание реальных соединений
- Привязка соединений к корутинам через HashTable
- Pinning при активных транзакциях и стейтментах
- Автоматический rollback и cleanup при завершении корутины
- Управление credentials в factory