 
 @objc public final class WikidataDescriptionEditingController: NSObject {
     weak var viewContext: NSManagedObjectContext?
+    private let semaphore = DispatchSemaphore(value: 1)
 
     @objc public init(with viewContext: NSManagedObjectContext) {
         self.viewContext = viewContext

    @objc public func setBlacklistedLanguages(_ blacklistedLanguagesFromRemoteConfig: Array<String>) {
        assert(Thread.isMainThread)
        assert(viewContext != nil)
        let blacklistedLanguages = NSSet(array: blacklistedLanguagesFromRemoteConfig)
        viewContext?.wmf_setValue(blacklistedLanguages, forKey: BlacklistedLanguagesKey)
    }

    private let BlacklistedLanguagesKey = "WMFWikidataDescriptionEditingBlacklistedLanguagesKey"
    private var blacklistedLanguages: NSSet {
        assert(Thread.isMainThread)
        semaphore.wait()
        defer {
            semaphore.signal()
        }
        let fallback = NSSet(set: ["en"])
        guard
            let viewContext = viewContext,
