Atomic is a lightweight property wrapper that guarantees thread-safe access to properties decorated with the @Atomic attribute.
class Task {
@Atomic var title: String
init(title: String) {
$title = Atomic(title)
}
}
let task = Task(title: "Buy groceries")
DispatchQueue.global().async { task.title = "Buy flowers" }
DispatchQueue.global().async { task.title = "Clean kitchen" }
To use Atomic with the Swift Package Manager, add a dependency to your Package.swift file:
let package = Package(
dependencies: [
.package(url: "https://github.com/shareup/atomic.git", .upToNextMajor(from: "1.0.0"))
]
)
Linux is not currently supported