123456789101112131415161718192021222324252627282930313233343536 |
- //
- // Platform.Darwin.swift
- // Platform
- //
- // Created by Krunoslav Zaher on 12/29/15.
- // Copyright © 2015 Krunoslav Zaher. All rights reserved.
- //
- #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
- import Darwin
- import class Foundation.Thread
- import protocol Foundation.NSCopying
- extension Thread {
- static func setThreadLocalStorageValue<T: AnyObject>(_ value: T?, forKey key: NSCopying) {
- let currentThread = Thread.current
- let threadDictionary = currentThread.threadDictionary
- if let newValue = value {
- threadDictionary[key] = newValue
- }
- else {
- threadDictionary[key] = nil
- }
- }
- static func getThreadLocalStorageValueForKey<T>(_ key: NSCopying) -> T? {
- let currentThread = Thread.current
- let threadDictionary = currentThread.threadDictionary
-
- return threadDictionary[key] as? T
- }
- }
- #endif
|