FEAS Web Locks — DOM cross-tab (spike throwaway)
env…
Rola tej karty: ?
Jestem KARTA A
Jestem KARTA B
a) cross-tab write (ta sama strona)
GO A: 2 karty, Z LOCKIEM
GO A: 2 karty, BEZ locka
reset strony
policz stronę
a: —
b) concurrent setup (jeden profil)
GO B: 2 karty setup, Z LOCKIEM
GO B: 2 karty setup, BEZ locka
reset profilu
b: —
c) termination / tło — auto-release locka
test: worker trzyma lock → terminate → czy zwolniony
c: —
d) koszt locka (ms/zapis)
zmierz narzut request/release (×500)
d: —
e) ⭐ stale-resume (JEDNA karta, dwa workery) — realne zagrożenie iOS
A czyta stary stan → B zapisuje → A pisze. BEZ fresh-read = A nadpisuje B (utrata). Z fresh-read-under-lock = A widzi B (brak utraty). Jeden tap, bez zależności od kart w tle.
GO E: odtwórz utratę i pokaż naprawę
e: —