/* Page prose (es) */
"CooperativeCancellation" = "# Cancelación cooperativa\n\nAquí está la parte que sorprende a todos. **Cancelar una tarea no la detiene.**\n\nCuando llamas a `task.cancel()`, Swift pone una bandera: `isCancelled` pasa a `true` para esa tarea y todas sus hijas. Eso es *todo* lo que hace. Nunca arranca la CPU, nunca lanza en medio de tu bucle, nunca fuerza un retorno. El trabajo en marcha sigue corriendo hasta que voluntariamente *comprueba* la bandera y decide detenerse. Esto se llama **cancelación cooperativa**: el sistema pide, y tu código coopera.\n\nAsí que el código cancelable tiene que *mirar*. Hay tres formas de mirar:\n\n* **`Task.isCancelled`**: un `Bool` que puedes leer en cualquier momento. Compruébalo y retorna pronto.\n* **`try Task.checkCancellation()`**: lanza `CancellationError` si está cancelada, así que una sola línea comprueba y se retira.\n* **`Task.sleep`**, que ya comprueba por ti: si la tarea se cancela mientras duerme, `Task.sleep` lanza `CancellationError` en lugar de esperar a que se cumpla el tiempo.\n\nConstruyamos lo de verdad: un trabajo de larga duración que cancelamos a mitad de camino, y veámoslo detenerse *con prontitud* porque comprueba entre cada paso. Imagina al barista moliendo granos lote a lote para un gran pedido de catering.";
"CooperativeCancellation-2" = "**Míralo en acción:** verás unas cuantas líneas `Grinding batch...` (alrededor de tres, dado el tiempo), luego `>>> Order cancelled`, luego `Grinder stopped early...`. El bucle de molido iba por el lote cuatro o cinco, pero en lugar de moler los veinte, se detuvo a menos de un paso de ser cancelado. Dos comprobaciones hicieron el trabajo: `Task.sleep` lanzó en el instante en que `cancel()` cayó a mitad del sueño, y `checkCancellation()` protege el inicio de cada bucle. Convierte *ambas* comprobaciones en comentarios y el bucle muele los veinte lotes sin importar cuándo canceles: prueba de que la cancelación es una petición, no una orden.\n\n* callout(Pruébalo): Cambia el retardo de cancelación de `800` a `200`. ¿Cuántos lotes se muelen antes de que se detenga?\n\n[Anterior](@previous)  |  página 7 de 11  |  [Siguiente: Cancelar con elegancia](@next)";
