Обзор

Раздел архитектуры описывает внутреннее устройство ключевых компонентов TrueAsync на уровне C-кода: структуры данных, алгоритмы, интеграцию с Zend Engine и взаимодействие между ядром PHP и async-расширением.

Эти материалы предназначены для разработчиков, которые хотят понять, как работает TrueAsync «под капотом», или планируют создавать собственные расширения.

TrueAsync ABI

Сердце асинхронного ABI: function pointers, система регистрации расширений, глобальное состояние (zend_async_globals_t), макросы ZEND_ASYNC_* и версионирование API.

Корутины, Scheduler и Reactor

Внутреннее устройство планировщика корутин и реактора событий: очереди (circular buffers), context switching через fiber, микротаски, libuv event loop, fiber context pool и graceful shutdown.

События и событийная модель

zend_async_event_t — базовая структура данных, от которой наследуют все асинхронные примитивы. Callback-система, ref-counting, event reference, флаги, иерархия типов событий.

Waker — механизм ожидания и пробуждения

Waker — связующее звено между корутиной и событиями. Статусы, resume_when, корутинные callback’и, доставка ошибок, структура zend_coroutine_t и switch handlers.

Сборка мусора в асинхронном контексте

Как PHP GC работает с корутинами, scope, контекстами: get_gc хендлеры, обход fiber-стеков, zombie-корутины, иерархический контекст и защита от циклических ссылок.

Компоненты

Async\Pool

Универсальный пул ресурсов. Описаны:

PDO Pool

PDO-специфичная надстройка над Async\Pool. Описаны: