RFC: Server should execute requests on a thread pool when client does not specify an execution thread
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- cpp
Línea de trabajo
Comienza con la transcripción de external-interfaces y el comportamiento actual de ThreadMap.makeThread y Context.thread descrito en el issue. Determina el diseño del thread pool del lado del servidor y sus efectos sobre los thread handles ausentes, los métodos sin mp.Context, los callbacks y el orden de las respuestas; se considera terminado cuando exista un RFC o un plan de implementación acordado, ya que no se especifican archivos ni tests.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- C++
- Estrellas
- 62
- Forks
- 58
- Merge medio
- 6 d 11 h
- PR fusionados (30 d)
- 7
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de bitcoin-core/libmultiprocess
-
Listeners can't be stopped, so bitcoin-node can hang after shutdown when an IPC client reconnectsAbiertobug
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
bitcoin-core/libmultiprocess#385 ·
Los mantenedores suelen responder en 1 día
-
ListenConnections stops listening for good after one temporary accept() failure such as EMFILEAbiertobug hardening
Dificultad 3/5 1-2 días Aptitud para principiantes 57/100
bitcoin-core/libmultiprocess#384 ·
Los mantenedores suelen responder en 1 día
-
Calling an IPC object after or during destroy() makes the server use a null or freed implementationPosiblemente ocupada @xyzconstant la tomó hace 13 días. Abiertobug hardening
Dificultad 4/5 3-5 días Aptitud para principiantes 40/100
bitcoin-core/libmultiprocess#378 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
iwyu: --check_also=*.h ?Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
bitcoin-core/libmultiprocess#329 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
bitcoin-core/libmultiprocess#328 ·
Los mantenedores suelen responder en 1 día
Todos los issues de bitcoin-core/libmultiprocess
Issues similares
-
parse_selu lowering loses catastrophic cancellation → silent 0.0 for moderate positive inputsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
ROCm/AMDMIGraphX#5490 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
arvidn/libtorrent#9126 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Sunrisepeak/mcpp-language-server#80 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
#2754 make deepseek api not workAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
xiaoyifang/goldendict-ng#3148 ·
Los mantenedores suelen responder en 1 día