b"".join should release GIL in case of memoryview
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 36k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Bug report
Bug description:
CPython PR #17757 allowed the GIL to be released during b"".join() operations. However, this optimization currently only triggers if every passed object is of type bytes; it falls back to acquiring the GIL if it encounters mutable buffers. While reacquiring the GIL is necessary for mutable types like bytearray, we can still safely drop the GIL for memoryview objects that expose immutable bytes.
Please refer to https://github.com/fsspec/gcsfs/pull/795#discussion_r3032749881 for more context.
cc: @martindurant
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
- gh-148456
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
Comienza revisando CPython PR #17757 y el PR vinculado gh-148456; después, sigue el manejo de b"".join para objetos memoryview. Se considera terminado cuando los memoryviews de bytes inmutables puedan usar la ruta que libera el GIL, mientras que los búferes mutables sigan adquiriendo de nuevo el GIL, y el comportamiento correspondiente esté cubierto por pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- performance
- 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