Swift Package Index

Atomic

https://github.com/shareup/atomic.git


Compatibility

  • v1.0.1 and master
    5.3
    5.2
    5.1
    5.0
    4.2
  • v1.0.1
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS
  • master
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS

Atomic

Atomic is a lightweight property wrapper that guarantees thread-safe access to properties decorated with the @Atomic attribute.

Usage

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" }

Installation

Swift Package Manager

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