A Deep Dive Into Sendable
summary
Sendable gives the compiler data race guarantees so code that used to crash under concurrent access is now a compile time problem, not a runtime mystery. Migrating Vapor took one year and uses actors, explicit locks, and a NELockValueBox pattern plus targeted use of @unchecked Sendable to opt out when safe. Swift 5 package flags and Swift 6 features like the sending keyword and proposal numbers 302 414 430 guide the migration and enable zero warnings with strict concurrency.
AI-written summary · about
chapters (14)
- 0:00Introduction and speaker intro
- 1:49Why Sendable exists in Swift
- 6:45What is Sendable and its purpose
- 8:10How Sendable works with types
- 10:25Sendable with reference types
- 12:03Making classes Sendable safely
- 14:12Unchecked Sendable and risks
- 16:20Swift 6 isolation and Sendable
- 17:44Sending keyword for non-Sendable types
- 19:10Safe mutable values with locks
- 20:15Vapor’s Sendable adoption journey
- 23:02Maintaining API compatibility
- 25:40Recap and key takeaways
- 27:31Q&A session
related talks
41mA Deep Dive Into Sendable for the Apple Developer
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
45mHow We Adapted the Project to Strict Concurrency Checking — Swift 6
30mSwift on the Server
01h 24mEasy Senders/Receivers
