/* Page prose (fr) */
"WrappingUp" = "# Récapitulatif\n\nCe chapitre, ce sont deux moitiés d'une même promesse: les actors globaux comme `@MainActor` épinglent le code à un unique domaine sérialisé, et `Sendable` marque quelles valeurs peuvent passer entre les domaines. Ensemble, ils permettent au compilateur de Swift 6 de transformer les data races en erreurs de compilation avant même que tu exécutes. Les points à retenir ci-dessous reposent sur le fait de résister à deux raccourcis opposés qui désactivent discrètement cette protection.\n\n* **`@MainActor`** garantit que le code s'exécute sur le thread principal et est vérifié par le compilateur: le remplacement moderne de `DispatchQueue.main.async`. L'appeler (ou appeler n'importe quel code isolé sur un actor) depuis un autre domaine nécessite **`await`**. Pour atteindre le main actor exprès, saute une seule closure avec **`MainActor.run { }`** ou exécute une tâche entière là-bas avec **`Task { @MainActor in }`**; une fois sur le main actor, ces sauts avec `await` disparaissent.\n* N'isole que ce qui touche vraiment à l'état d'UI partagé; draper tout dans `@MainActor` traîne le travail apte à l'arrière-plan sur le thread principal et réintroduit les gels du chapitre [Pourquoi la concurrence](Why%20Concurrency.playgroundchapter/Overview).\n* **`@globalActor`** te laisse définir ton propre marqueur de domaine-unique-sérialisé pour tout un sous-système; utilise-le avec parcimonie.\n* **`Sendable`** marque les types sûrs à faire passer les frontières de concurrence. Les types valeur et les classes finales immuables se qualifient; **une classe avec le moindre `var` non**, aussi prudent que soit ton usage: corrige-la en en faisant un actor, en la rendant immuable, ou en l'isolant. Recours à `@unchecked Sendable` uniquement pour les types qui gèrent vraiment leur propre verrouillage, jamais pour faire taire une erreur.\n* Les closures **`@Sendable`** (comme celle que prend `Task`) ne peuvent capturer que des valeurs Sendable et ne peuvent pas muter les `var` capturés.\n* Swift 6 utilise tout cela pour transformer les data races en **erreurs à la compilation**: traite ces erreurs comme le compilateur qui prouve que ta concurrence est sûre.\n\n---\n\n## La suite\n\n**[Classique vs. Moderne](Classic%20vs%20Modern.playgroundchapter/Overview)**: le même problème résolu des deux façons, pour que tu puisses voir tout l'arc d'un coup et décider quand migrer.\n\n[Précédent](@previous)  |  page 11 sur 11";
