replace the lock in `exec::__nest_rcvr::__complete` with a CAS loop
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- performance
Direzione di ricerca
Inizia con async_scope::spawn e start_detached, quindi esamina la logica di notifica della lista concatenata in split. Individua il locking e l’unlocking in exec::__next_rcvr::__complete (oppure in __nest_rcvr::__complete indicato nel titolo) e confrontali con il ciclo compare-and-swap di split. Il lavoro è completato quando il percorso di completion usa l’approccio basato su CAS senza modificare il comportamento delle notifiche né la correttezza di async_scope.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
async_scope::spawn is much slower than start_detached, and I suspect the issue is the locking and unlocking going on in exec::__next_rcvr::__complete. There is similar logic for walking a linked list and notifying each element in the implementation of split, but there it is done more efficiently with a compare-and-swap loop. Maybe the two can share logic.
- Lingua principale
- C++
- Stelle
- 2.4k
- Fork
- 270
- Merge medio
- 2g 16h
- PR unite (30g)
- 43
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 NVIDIA/stdexec
-
inline_scheduler's namespace-scope static_assert fails under nvcc (private nested __sender access) Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 65/100
Tutte le issue di NVIDIA/stdexec
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
duckdb/duckdb-wasm#2258 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
objectionary/eo-graphs#75 ·
-
Coarray integration tests carry no LABELS, so run_tests.py silently skips them under every backend Apertacoarray
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
FISCO-BCOS/FISCO-BCOS#5642 ·