Panoramica

La sezione architettura descrive la progettazione interna dei componenti chiave di TrueAsync a livello di codice C: strutture dati, algoritmi, integrazione con Zend Engine e interazione tra il core PHP e l’estensione async.

Questi materiali sono destinati agli sviluppatori che vogliono capire come funziona TrueAsync “sotto il cofano” o che intendono creare le proprie estensioni.

TrueAsync ABI

Il cuore dell’ABI asincrona: puntatori a funzione, sistema di registrazione delle estensioni, stato globale (zend_async_globals_t), macro ZEND_ASYNC_* e versionamento dell’API.

Coroutine, Scheduler e Reactor

Progettazione interna dello scheduler delle coroutine e del reactor degli eventi: code (buffer circolari), cambio di contesto tramite fiber, microtask, loop degli eventi libuv, pool di contesti fiber e arresto controllato.

Eventi e Modello degli Eventi

zend_async_event_t – la struttura dati base da cui ereditano tutte le primitive asincrone. Sistema di callback, ref-counting, riferimento agli eventi, flag, gerarchia dei tipi di evento.

Waker – Meccanismo di Attesa e Risveglio

Il Waker è il collegamento tra una coroutine e gli eventi. Stati, resume_when, callback delle coroutine, consegna degli errori, struttura zend_coroutine_t e switch handler.

Garbage Collection nel Contesto Asincrono

Come il GC di PHP funziona con coroutine, scope e contesti: handler get_gc, attraversamento dello stack fiber, coroutine zombie, contesto gerarchico e protezione contro i riferimenti circolari.

Componenti

Async\Pool

Pool di risorse universale. Argomenti trattati:

PDO Pool

Layer specifico per PDO sopra Async\Pool. Argomenti trattati: