Skip to content
/ Once Public

A replacement for Dispatch Once in Swift

License

Notifications You must be signed in to change notification settings

bscothern/Once

Repository files navigation

Once

GitHub license SPM Carthage compatible

A simple thread safe replacement for Dispatch Once and pthread_once for Swift.

Swift Package Manager

Update your Package.swift to include the appropriate dependency below:

Swift 5.2+

.package(name: "Once", "https://github.com/bscothern/Once.git", from: "1.4.0")

Swift 4.0-5.1

.package(url: "https://github.com/bscothern/Once.git", from: "1.3.2")

Carthage Usage

Include this line in your Cartfile:

github "bscothern/Once"

Usage

import Once

let once = Once()

func foo() {
    once.runOnce {
        // Do stuff that should only execute the first time foo() is called.
    }
    // Do stuff
}