Skip to main content

Module multishot

Module multishot 

Source
Expand description

Opérations multishot (Temps 3d) : une unique soumission produit un flux de complétions. Sous-module air-sys-syscall::io_uring::multishot. Repose sur le drapeau de complétion CQE_F_MORE (axe E), sur les buffers fournis du Temps 3b (recv/read) et les descripteurs directs du Temps 3a (accept direct). Aucun register opcode ; un opcode dédié (READ_MULTISHOT, 49) et des drapeaux d’op.

Référence normative : docs/specs/layer-0/io-uring-3d-multishot.md.

§Cycle de vie (slab S1)

Chaque complétion intermédiaire porte CQE_F_MORE (« d’autres suivront pour ce SQE ») ; la terminale ne le porte pas (erreur, pénurie de buffers, ou annulation). Le slot S1 reste vivant tant que CQE_F_MORE et n’est libéré qu’à la terminale — second cas (après le NOTIF zero-copy du Temps 2b) où un slot survit à sa première complétion. La génération du jeton filtre les CQE tardifs après annulation (Temps 1 §4.2).

Une op multishot rend un MultishotToken (distinct du SubmissionToken mono-coup) ; toutes ses complétions le portent (Completion::multishot_token). Completion::has_more distingue les intermédiaires de la terminale. Le réarmement (resoumission) est explicite.