All Downloads are FREE. Search and download functionalities are using the official Maven repository.

swift5.SynchronizedDictionary.mustache Maven / Gradle / Ivy

There is a newer version: 7.7.0
Show newest version
// SynchronizedDictionary.swift
//
// Generated by openapi-generator
// https://openapi-generator.tech
//

import Foundation

internal struct SynchronizedDictionary {

    private var dictionary = [K: V]()
    private let queue = DispatchQueue(
        label: "SynchronizedDictionary",
        qos: DispatchQoS.userInitiated,
        attributes: [DispatchQueue.Attributes.concurrent],
        autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency.inherit,
        target: nil
    )

    internal subscript(key: K) -> V? {
        get {
            var value: V?

            queue.sync {
                value = self.dictionary[key]
            }

            return value
        }
        set {
            queue.sync(flags: DispatchWorkItemFlags.barrier) {
                self.dictionary[key] = newValue
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy