/* Page prose (de) */
"CooperativeCancellation" = "# Kooperativer Abbruch\n\nHier ist der Teil, der alle überrascht. **Eine Task abzubrechen hält sie nicht an.**\n\nWenn du `task.cancel()` aufrufst, setzt Swift ein Flag: `isCancelled` wird `true` für diese Task und alle ihre Kinder. Das ist *alles*, was es tut. Es reißt nie die CPU weg, wirft nie mitten in deine Schleife, erzwingt nie eine Rückkehr. Die laufende Arbeit läuft weiter, bis sie das Flag freiwillig *prüft* und beschließt, aufzuhören. Das nennt man **kooperativen Abbruch**: das System fragt, und dein Code kooperiert.\n\nAlso muss abbrechbarer Code *hinschauen*. Es gibt drei Arten hinzuschauen:\n\n* **`Task.isCancelled`**: ein `Bool`, das du jederzeit lesen kannst. Prüfe es und kehre früh zurück.\n* **`try Task.checkCancellation()`**: wirft `CancellationError`, wenn abgebrochen, sodass eine Zeile sowohl prüft als auch aussteigt.\n* **`Task.sleep`**, prüft bereits für dich: wird die Task abgebrochen, während sie schläft, wirft `Task.sleep` `CancellationError`, statt die Uhr auszusitzen.\n\nBauen wir das echte Ding: einen langlaufenden Job, den wir mittendrin abbrechen, und sehen wir zu, wie er *prompt* aufhört, weil er zwischen jedem Schritt prüft. Stell dir den Barista vor, wie er Bohnen Charge für Charge für einen großen Catering-Auftrag mahlt.";
"CooperativeCancellation-2" = "**Sieh es laufen:** du wirst ein paar `Grinding batch...`-Zeilen sehen (grob drei, angesichts des Timings), dann `>>> Order cancelled`, dann `Grinder stopped early...`. Die Mahlschleife war bei Charge vier oder fünf, aber statt alle zwanzig zu mahlen, hörte sie innerhalb eines einzigen Schritts nach dem Abbruch auf. Zwei Prüfungen erledigten die Arbeit: `Task.sleep` warf in dem Augenblick, in dem `cancel()` mitten im Schlaf einschlug, und `checkCancellation()` bewacht den Anfang jeder Schleife. Verwandle *beide* Prüfungen in Kommentare, und die Schleife mahlt alle zwanzig Chargen, egal wann du abbrichst: der Beweis, dass Abbruch eine Bitte ist, kein Befehl.\n\n* callout(Probier es aus): Ändere die Abbruchverzögerung von `800` auf `200`. Wie viele Chargen werden gemahlen, bevor sie aufhört?\n\n[Zurück](@previous)  |  Seite 7 von 11  |  [Weiter: Sauber abbrechen](@next)";
