A Deep Dive Into Sendable for the Apple Developer
summary
Sendable gives the compiler guarantees that prevent data races when passing values across async/task/actor boundaries; the talk shows how to adopt it in real code by marking value types, using actors or MainActor for reference types, or opting out with unchecked sendable and protecting state with a neol locked value box. Practical steps: enable strict concurrency checking in 510 or per-module, fix repeated warnings by making core types sendable, and prefer actors or locked boxes rather than unchecked opt-outs.
AI-written summary · about
chapters (11)
- 0:00Introduction and speaker background
- 3:37Why Sendable exists
- 10:21What Sendable is
- 13:52How Sendable works
- 20:13Making reference types Sendable
- 26:32Safe mutable values outside actors
- 30:00Starting your Sendable journey
- 33:14Vapor’s Sendable adoption challenges
- 34:17Maintaining API compatibility
- 38:29Swift 6 and future improvements
- 40:54Final thoughts and Q&A
related talks
36mA Deep Dive Into Sendable
31mIsolation, actors, sendable… a concurrency deep dive
20mHow To Approach Approachable Concurrency
23mSwift Concurrency is new and hard, and you can do it
30mA Practical Guide to Swift Concurrency
31mIs structured concurrency worth the effort?
26mSwift Concurrency Under the Hood
45mHow We Adapted the Project to Strict Concurrency Checking — Swift 6
