Concurrency Concepts
Sendable Values
Immutable data is a good fit for values passed across concurrency boundaries.
Pass immutable data
sendable_values.swift
struct Job: Sendable {
let name: String
let count: Int
}
func summarize(_ job: Job) async -> String {
return "\(job.name):\(job.count)"
}
let count =
let job = Job(name: "trace", count: count)
let message = await summarize(job)
print(message)
struct Job: Sendable {
let name: String
let count: Int
}
func summarize(_ job: Job) async -> String {
return "\(job.name):\(job.count)"
}
let count =
let job = Job(name: "trace", count: count)
let message = await summarize(job)
print(message)
struct Job: Sendable {
let name: String
let count: Int
}
func summarize(_ job: Job) async -> String {
return "\(job.name):\(job.count)"
}
let count =
let job = Job(name: "trace", count: count)
let message = await summarize(job)
print(message)
sendable value
A simple `Sendable` struct communicates that its stored values are safe to pass between concurrent tasks.