Skip to content
This repository has been archived by the owner on Apr 27, 2022. It is now read-only.

Commit

Permalink
fix(ios): fix a crash due to race condition on RNAdMobAdHolder
Browse files Browse the repository at this point in the history
  • Loading branch information
ifsnow committed Dec 13, 2021
1 parent a9d312b commit d0d8f7b
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions ios/RNAdMobAdHolder.swift
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
class RNAdMobAdHolder<T> {
private var adArrayQueue = DispatchQueue(label: "RNAdMobAdHolderQueue")
private var adArray = Dictionary<Int, T>()

func add(requestId: Int, ad: T) {
adArray.updateValue(ad, forKey: requestId)
adArrayQueue.sync {
adArray.updateValue(ad, forKey: requestId)
}
}

func get(requestId: Int) -> T? {
return adArray[requestId]
adArrayQueue.sync {
return adArray[requestId]
}
}

func remove(requestId: Int) {
adArray.removeValue(forKey: requestId)
adArrayQueue.sync {
adArray.removeValue(forKey: requestId)
}
}

func clear() {
adArray.removeAll()
adArrayQueue.async(flags: .barrier) {[weak self] in
self?.adArray.removeAll()
}
}
}

0 comments on commit d0d8f7b

Please sign in to comment.