Vue d’ensemble

La section architecture decrit la conception interne des composants cles de TrueAsync au niveau du code C : structures de donnees, algorithmes, integration avec le Zend Engine, et interaction entre le noyau PHP et l’extension async.

Ces documents sont destines aux developpeurs qui souhaitent comprendre comment TrueAsync fonctionne “sous le capot” ou qui envisagent de creer leurs propres extensions.

ABI TrueAsync

Le coeur de l’ABI asynchrone : pointeurs de fonctions, systeme d’enregistrement des extensions, etat global (zend_async_globals_t), macros ZEND_ASYNC_*, et versionnage de l’API.

Coroutines, Scheduler et Reactor

Conception interne du scheduler de coroutines et du reacteur d’evenements : files d’attente (tampons circulaires), changement de contexte via fiber, microtaches, boucle d’evenements libuv, pool de contextes fiber, et arret gracieux.

Evenements et modele evenementiel

zend_async_event_t – la structure de donnees de base dont heritent toutes les primitives asynchrones. Systeme de callbacks, comptage de references, reference d’evenement, drapeaux, hierarchie des types d’evenements.

Waker – Mecanisme d’attente et de reveil

Le Waker est le lien entre une coroutine et les evenements. Statuts, resume_when, callbacks de coroutine, transmission des erreurs, structure zend_coroutine_t, et gestionnaires de commutation.

Ramasse-miettes en contexte asynchrone

Comment le GC de PHP fonctionne avec les coroutines, les portees et les contextes : gestionnaires get_gc, parcours de la pile fiber, coroutines zombies, contexte hierarchique, et protection contre les references circulaires.

Composants

Async\Pool

Pool de ressources universel. Sujets couverts :

PDO Pool

Couche specifique a PDO au-dessus d’Async\Pool. Sujets couverts :