RFC: Server should execute requests on a thread pool when client does not specify an execution thread
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Stack tecnologico
- cpp
Direzione di ricerca
Inizia con la trascrizione di external-interfaces e con il comportamento attuale di ThreadMap.makeThread e Context.thread descritto nell’issue. Determina il design del thread pool lato server e i suoi effetti sui thread handle mancanti, sui metodi senza mp.Context, sui callback e sull’ordinamento delle risposte; il lavoro è completato quando esiste un RFC o un piano di implementazione concordato, poiché non sono indicati file o test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Referencing: https://btctranscripts.com/bitcoin-core-dev-tech/2026-05/external-interfaces
Problem: IPC interface can be awkward to call due to threading
- Clients have to choose which thread asynchronous calls execute on, and create threads for calls to execute on
- Could be improved by server executing requests on a thread pool when client does not specify an execution thread
Currently, clients that call IPC methods must first call ThreadMap.makeThread to create a server-side worker thread and pass the resulting Thread handle in Context.thread on every call so it executes on a dedicated thread. Libmultiprocess abstracts this away for C++ clients, but clients that don't use libmultiprocess (which only supports C++) must handle this setup manually, making the IPC interface more awkward to call.
Proposed improvement: When a client passes a null/missing Context.thread, or when a method has no mp.Context parameter at all, the server should fall back to executing the request on a server-managed thread pool instead of blocking the event loop thread or failing with "invalid thread handle". This would simplify non-libmultiprocess clients that doesn't need a dedicated thread model.
Caveats:
- Callbacks require the client to still provide Context.callbackThread
- Response ordering is not guaranteed when requests from the same client land on different pool threads. The dedicated thread model avoids this by always queuing requests from the same client on one thread
- Lingua principale
- C++
- Stelle
- 62
- Fork
- 58
- Merge medio
- 6g 11h
- PR unite (30g)
- 7
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 bitcoin-core/libmultiprocess
-
Listeners can't be stopped, so bitcoin-node can hang after shutdown when an IPC client reconnectsApertabug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
bitcoin-core/libmultiprocess#385 ·
I maintainer di solito rispondono entro 1 giorno
-
ListenConnections stops listening for good after one temporary accept() failure such as EMFILEApertabug hardening
Difficoltà 3/5 1-2 giorni Idoneità per principianti 57/100
bitcoin-core/libmultiprocess#384 ·
I maintainer di solito rispondono entro 1 giorno
-
Calling an IPC object after or during destroy() makes the server use a null or freed implementationForse già presa @xyzconstant l’ha presa 11 giorni fa. Apertabug hardening
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
bitcoin-core/libmultiprocess#378 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
iwyu: --check_also=*.h ?Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
bitcoin-core/libmultiprocess#329 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
bitcoin-core/libmultiprocess#328 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bitcoin-core/libmultiprocess
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
eic/TimeframeBuilder#102 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
-
error not reported I/O low priority rt_lib
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
[XLA] hlo/pass/README.md says passes implement Run; since the NVI change they implement RunImplAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
objectionary/game-of-life#78 ·