Swift Actor Common Pitfall: Parameters Are NOT Protected!
class DownloadCounter { var count = 0 var lastDownload: Date? } actor DownloadManager { private var totalProcessed = 0 // ✅ Protected by actor func processDownload(_ counter: DownloadCounter) async { totalProcessed += 1 // ✅ Safe - actor's state // 💥 DANGER: counter is NOT protected! counter.count += 1 // ❌ Potential data race counter.lastDownload = Date() // ❌ Potential data race } } // Data race scenario func dangerousUsage() async { let counter = DownloadCounter() let manager = DownloadManager() // Thread 1 Task { await manager.processDownload(counter) } // Thread 2 - Concurrent access! Task { counter.count += 5 // 💥 DATA RACE with Thread 1 } } ✅ The Solution: sending to Transfer Ownership ...