Isolation, actors, sendable… a concurrency deep dive
summary
Swift 6’s concurrency turns runtime races into compile errors by enforcing three concrete rules: isolation (state belongs to one context), actors (convert a sync class to an actor to stop concurrent mutations but calls become implicitly async and require await), and sendable/sending (only Sendable values cross isolation boundaries; use the new sending keyword or make a type Sendable). Examples: turning a shared formatter class into an actor prevents crashes; tasks now accept sending closures so non‑Sendable captures must be moved or transferred; annotate with @MainActor to keep contexts aligned.
AI-written summary · about
chapters (11)
- 0:00Swift 6 concurrency changes
- 1:45Data race protection pillars
- 4:14Protecting state before actors
- 7:05Actors prevent data races
- 10:38Actor isolation explained
- 13:25Global actors and boundaries
- 17:59Apple’s concurrency push
- 21:09Sendable types
- 25:03Sendable closures and keyword
- 28:55Compiler errors and fixes
- 30:39Swift 6 concurrency best practices
related talks
23mSwift Concurrency is new and hard, and you can do it
20mHow To Approach Approachable Concurrency
41mA Deep Dive Into Sendable for the Apple Developer
36mA Deep Dive Into Sendable
31mIs structured concurrency worth the effort?
45mHow We Adapted the Project to Strict Concurrency Checking — Swift 6
54mScala concurrency patterns with Actors
29mLeveraging structured concurrency in your applications
