dispatch_barrier_async can lead to inconsistent values when using mutable objects
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- objective-c
- Ambito
- devtools
Direzione di ricerca
Inizia riproducendo i casi segnalati di registerDefaults e setObject:forKey: con le prestazioni del simulatore abilitate e disabilitate, quindi traccia la gestione di dispatch_barrier_async. Il lavoro è completato quando le mutazioni seguono in modo coerente il comportamento di NSUserDefaults invece di dipendere dal timing della barriera o dalla modalità delle prestazioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
dispatch_barrier_async works great for this project, except for the following situation:
- NSMutableDictionary *registeredDefaults = [[NSMutableDictionary alloc] init];
- [[NSUserDefaults standardUserDefaults] registerDefaults:registeredDefaults];
- [registeredDefaults setObject:@"FOO" forKey:@"BAR"];
- NSObject *value = [[NSUserDefaults standardUserDefaults] objectForKey:@"BAR"];
- With sim performance ON, value may be equal to nil or equal to @"FOO" depending on if line 3 executed before the internal barrier_async block executed.
- With sim performance OFF, value is always equal to nil. Mutations after line 2 are not acknowledged.
The code above is incorrect anyways (you wouldn't expect it to work) -- but we still need to honor the behavior of NSUserDefaults. You could emulate this bug using -setObject:forKey: with a mutable object.
- Lingua principale
- Objective-C
- Stelle
- 40
- Fork
- 1
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Flipboard/NSUserDefaultsSimulatorPerformanceBoost
-
Add unit tests Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 20/100
Tutte le issue di Flipboard/NSUserDefaultsSimulatorPerformanceBoost
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
razorpay/razorpay-pod#306 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
objective-see/KnockKnock#55 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
schuyler/macdown3000#589 ·
-
Suzhou subway logo ApertaIcons Metro Public Transport
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
organicmaps/organicmaps#13617 · 2 commenti ·