Questions about non-atomic instructions like `i32.store`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- wasm
- Ambito
- compilers
Direzione di ricerca
Inizia dalle sezioni della specifica WebAssembly Threads collegate nell’issue, in particolare dalle definizioni delle istruzioni e degli eventi di runtime. Confronta il comportamento dichiarato di i32.store nella memoria condivisa con i32.atomic.rmw.cmpxchg e con il pattern di mutex descritto; il lavoro è completato quando l’interpretazione è stata risolta e viene registrata una risposta chiara secondo la specifica.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
when i32.store writes data to a shared memory, it's performed with an wr action. (https://webassembly.github.io/threads/core/exec/instructions.html#t-mathsf-xref-syntax-instructions-syntax-instr-memory-mathsf-store-n-xref-syntax-instructions-syntax-memarg-mathit-memarg)
those events are atomically performed according to https://webassembly.github.io/threads/core/exec/runtime.html#events.
thus, if a runtime implements atomic instructions like i32.atomic.rmw.cmpxchg via a lock, non-atomic instructions like i32.store should take the lock too, at least when operating on a shared memory.
is it the correct reading of the spec?
background:
some applications (eg. musl) implements a mutex with atomic cmpxchg for lock and ordinary store + barrier for unlock. as far as i know, it's fine for eg. x86. however, a naive porting to wasm might or might not cause problems.
- Lingua principale
- WebAssembly
- Stelle
- 767
- Fork
- 54
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
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 WebAssembly/threads
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
WebAssembly/threads#254 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
WebAssembly/threads#253 · 6 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
WebAssembly/threads#245 · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
WebAssembly/threads#240 ·
-
Branch renaming Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 20/100
WebAssembly/threads#237 ·
Tutte le issue di WebAssembly/threads
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
JakeChampion/lang#10213 ·
-
enhancement good first issue needs testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bradcypert/plum#58 ·
-
flang:fir-hlfir
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
llvm/llvm-project#225935 ·
-
Hand Tail: Brass Herald Apertaarea:cards hand-tail ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
fil-donadoni/tolaria#4446 ·