/* Page prose (fr) */
"CooperativeCancellation" = "# Annulation coopérative\n\nVoici la partie qui surprend tout le monde. **Annuler une tâche ne l'arrête pas.**\n\nQuand tu appelles `task.cancel()`, Swift lève un drapeau: `isCancelled` passe à `true` pour cette tâche et toutes ses enfants. C'est *tout* ce qu'il fait. Il n'arrache jamais le CPU, ne lève jamais d'erreur au milieu de ta boucle, ne force jamais un retour. Le travail en cours continue de s'exécuter jusqu'à ce qu'il *vérifie* volontairement le drapeau et décide de s'arrêter. On appelle cela l'**annulation coopérative**: le système demande, et ton code coopère.\n\nDonc le code annulable doit *regarder*. Il y a trois façons de regarder:\n\n* **`Task.isCancelled`**: un `Bool` que tu peux lire à tout moment. Vérifie-le et retourne tôt.\n* **`try Task.checkCancellation()`**: lève `CancellationError` si annulée, donc une seule ligne vérifie et se retire à la fois.\n* **`Task.sleep`**, qui vérifie déjà pour toi: si la tâche est annulée pendant qu'elle dort, `Task.sleep` lève `CancellationError` au lieu d'attendre la fin du délai.\n\nConstruisons la vraie chose: un travail de longue durée que nous annulons à mi-parcours, et regardons-le s'arrêter *promptement* parce qu'il vérifie entre chaque étape. Imagine le barista moulant les grains lot par lot pour une grosse commande de traiteur.";
"CooperativeCancellation-2" = "**Observe l'exécution:** tu verras quelques lignes `Grinding batch...` (environ trois, vu le timing), puis `>>> Order cancelled`, puis `Grinder stopped early...`. La boucle de mouture en était au lot quatre ou cinq, mais au lieu de moudre les vingt, elle s'est arrêtée à moins d'une étape de son annulation. Deux vérifications ont fait le travail: `Task.sleep` a levé une erreur à l'instant où `cancel()` est tombé en plein sommeil, et `checkCancellation()` protège le début de chaque boucle. Transforme les *deux* vérifications en commentaires et la boucle moud les vingt lots, peu importe quand tu annules: preuve que l'annulation est une requête, pas un ordre.\n\n* callout(Essaie): Change le délai d'annulation de `800` à `200`. Combien de lots sont moulus avant qu'elle s'arrête?\n\n[Précédent](@previous)  |  page 7 sur 11  |  [Suivant: Annuler proprement](@next)";
