_PyOS_SigintEvent() is needed for interruptible waiting on main thread
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 35.9k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug report
Bug description:
Moved from https://github.com/python/cpython/pull/108605#issuecomment-2521215855
In https://github.com/python/cpython/pull/108605, _PyOS_SigintEvent was removed from the public headers.
TensorStore relies on that function here: https://github.com/google/tensorstore/blob/eda046b10158e7d82fdb0f23aeecdfdeb8ac5aa3/python/tensorstore/future.cc#L105 to enable synchronously blocking on the readiness of a custom Future type while allowing Ctrl+C to interrupt when running on the main thread.
The current workaround is to manually declare the function since the symbol is still available.
I'm not aware of a usable alternative. Since signal.set_wakeup_fd only allows a single fd to be set globally, it isn't usable from a library. The best alternative would probably be to poll by waking up every few hundred milliseconds.
CPython versions tested on:
3.13
Operating systems tested on:
No response
Guía de contribución
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.
Línea de trabajo
Comience revisando CPython PR #108605 y el uso de _PyOS_SigintEvent en python/tensorstore/future.cc de TensorStore, en la línea 105. Trace cómo afecta a las bibliotecas de extensión la eliminación de la declaración del encabezado público y compare las alternativas disponibles para despertar mediante señales. Se considerará terminado cuando se proporcione una forma compatible para que una biblioteca interrumpa la espera síncrona en el hilo principal, preservando el comportamiento de Ctrl+C.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- api, operating-systems
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100