/* Page prose (es) */
"CleaningUpOnTermination" = "# Limpiar con onTermination\n\nUn sensor real necesita apagarse cuando ya nadie escucha; de lo contrario, sigue muestreando (y agotando la batería) para siempre. La continuación te da un gancho para exactamente eso: **`onTermination` se ejecuta una vez cuando el stream termina**, ya sea que terminara con normalidad o que el consumidor se marchara.\n\nEsta versión transmite lecturas indefinidamente, y apaga el sensor al terminar.";
"CleaningUpOnTermination-2" = "**Míralo en acción:** tres lecturas se imprimen, luego el bucle hace `break`. Salir del bucle desmonta el stream, así que `onTermination` se dispara con `.cancelled`, imprime `Consumer left: sensor powered down`, y cancela la tarea productora interna. Sin ese gancho, el bucle `while` muestrearía para siempre en segundo plano aunque nadie lo esté leyendo: una fuga clásica.\n\n`onTermination` es tu cajón de limpieza: cancela temporizadores, cierra archivos, da de baja observadores. Configúralo en cuanto tengas la continuación, para que esté listo sin importar cómo termine el stream.\n\n* callout(Nota al margen): La clausura `onTermination` debe ser `@Sendable`. Puede ejecutarse desde una tarea distinta de la que creó el stream, así que solo puede tocar cosas que sean seguras de compartir (como la referencia `Task` que cancelamos aquí). Swift 6 lo señalará si recurres a algo que no lo sea.\n\n[Anterior](@previous)  |  página 4 de 7  |  [Siguiente: La cancelación detiene el consumo](@next)";
