瀏覽代碼

Added lock for getData calls -> Tests doesn’t fail

Eli Kohen 8 年之前
父節點
當前提交
ad4b460a53
共有 2 個文件被更改,包括 8 次插入0 次删除
  1. 4 0
      Distrib/KeychainSwiftDistrib.swift
  2. 4 0
      Sources/KeychainSwift.swift

+ 4 - 0
Distrib/KeychainSwiftDistrib.swift

@@ -47,6 +47,8 @@ open class KeychainSwift {
    
   */
   open var synchronizable: Bool = false
+
+  private let getLock = NSLock()
   
   /// Instantiate a KeychainSwift object
   public init() { }
@@ -170,6 +172,8 @@ open class KeychainSwift {
   
   */
   open func getData(_ key: String) -> Data? {
+    getLock.lock()
+    defer { getLock.unlock() }
     let prefixedKey = keyWithPrefix(key)
     
     var query: [String: Any] = [

+ 4 - 0
Sources/KeychainSwift.swift

@@ -32,6 +32,8 @@ open class KeychainSwift {
    
   */
   open var synchronizable: Bool = false
+
+  private let getLock = NSLock()
   
   /// Instantiate a KeychainSwift object
   public init() { }
@@ -155,6 +157,8 @@ open class KeychainSwift {
   
   */
   open func getData(_ key: String) -> Data? {
+    getLock.lock()
+    defer { getLock.unlock() }
     let prefixedKey = keyWithPrefix(key)
     
     var query: [String: Any] = [