/* Page prose (fr) */
"StructuredGuarantee" = "# La garantie structurée\n\nLes task groups sont de la **concurrence structurée**, et ce mot \"structurée\" porte une promesse qui vaut la peine d'être dite à voix haute:\n\n**La portée de `withTaskGroup` ne retournera pas tant que chaque tâche enfant n'a pas terminé ou été annulée.** Aucun enfant ne peut survivre au groupe. Quand le contrôle passe l'accolade fermante, il y a zéro tâche restante en train de s'exécuter dans l'ombre.\n\nC'est pourquoi tu n'as jamais à suivre les tâches enfants à la main, à les annuler toi-même, ni à t'inquiéter que l'une se soit échappée et brûle encore du CPU après que tu es passé à autre chose. La *structure* de ton code, les accolades du groupe, borne la *durée de vie* du travail. Même dans l'exemple qui lève de la page précédente, le groupe n'a pas retourné tant que les sœurs annulées ne s'étaient pas réellement arrêtées.\n\nL'annulation se propage de la même façon que dans le chapitre [Tâches et annulation](Tasks%20and%20Cancellation.playgroundchapter/Overview): **vers le bas de l'arbre**. Annule la tâche qui possède le groupe, et chaque enfant est marqué annulé lui aussi. Et un enfant n'est qu'une tâche ordinaire, donc il observe l'annulation de la même façon: `Task.sleep` lève `CancellationError`, et tu peux vérifier `Task.isCancelled` dans une longue boucle pour sortir tôt.";
"StructuredGuarantee-2" = "**Observe l'exécution:** annuler `stack` se propage dans le groupe et vers le bas jusqu'aux 100 enfants. Leurs appels à `Task.sleep` lèvent et se déroulent (ici le `try?` avale l'erreur et produit `nil`, donc ces images apportent leur valeur de repli), et le groupe retourne quand même proprement, parce que la garantie tient même quand la réponse est \"arrête-toi.\" Rien ne fuit.\n\n[Précédent](@previous)  |  page 7 sur 9  |  [Suivant: Plafonner combien s'exécutent à la fois](@next)";
