`Buffer<'_>` shouldn't be `Send`
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- Calme
- Stack technique
- rust
- Domaine
- computer-graphics, desktop-dev
Piste de recherche
Commencez par suivre les API Buffer et Surface autour de next_buffer(), en vous concentrant sur la manière dont la présentation est liée au transfert entre threads et au verrouillage de la plateforme. Comparez la justification Android dans softbuffer PR #331 et évaluez le comportement existant de Send et Sync ; le travail est considéré comme terminé lorsqu’une décision claire a été prise concernant le contrat de sécurité des threads de Buffer et qu’elle a été documentée ou implémentée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Android holds a lock on the buffer while it's in use, see https://github.com/rust-windowing/softbuffer/pull/331, and I'm experimenting a bit with a similar design on macOS (which is to say, I think it's a reasonable thing for our buffers to do).
MutexGuards are not Send though, which makes me wonder if this is sound?
Is there a use-case for Buffer<'_> being Send? As-in, is there ever a case where you would want to present on a different thread than the one that called next_buffer()? The problem wouldn't exist if you moved the entire Surface to a different thread.
I can see the argument for buffers being Sync though (&mut T is Sync), it could maybe make sense to pass the buffer to a scoped thread and render in that.
- Langage dominant
- Rust
- Étoiles
- 506
- Forks
- 84
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
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.
Autres issues de rust-windowing/softbuffer
-
DS - X11
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
rust-windowing/softbuffer#368 ·
-
Needs Design Work
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
rust-windowing/softbuffer#342 · 1 commentaire ·
-
enhancement question
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
rust-windowing/softbuffer#338 ·
-
Zero-copying on AndroidOuverteDS - Android NDK enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
rust-windowing/softbuffer#318 · 2 commentaires ·
-
DS - Wayland DS - X11 question
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
rust-windowing/softbuffer#306 · 2 commentaires ·
Toutes les issues de rust-windowing/softbuffer
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
aws-samples/sample-pacer#76 ·
Les mainteneurs répondent en général sous 1 jour
-
mime-type element is mandatoryOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
axodotdev/cargo-dist#2523 ·
Les mainteneurs répondent en général sous 2 jours