b"".join should release GIL in case of memoryview
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par examiner CPython PR #17757 et le PR associé gh-148456, puis suivez la gestion de b"".join pour les objets memoryview. Le travail est terminé lorsque les memoryviews de bytes immuables peuvent utiliser le chemin qui libère le GIL, tandis que les buffers mutables réacquièrent toujours le GIL, et que le comportement correspondant est couvert par des tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- performance
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100