Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

X11: remove Send requirement and process all UI and events on the main thread

Offen
#342 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
rust
Bereich
desktop

Rechercherichtung

Start by reading the X11 backend’s event-loop implementation and the Host API; the issue does not name specific files or tests. Determine how timer and file-descriptor callbacks should be exposed for VST3 and CLAP, then verify that UI and event processing can stay on the main thread without the Send bound and that users can implement the revised Host API.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Currently the X11 backend spawns a new thread in order to spawn its own event loop and processes everything there.
This is done because on Linux there is no such thing as a global event loop (unlike Windows and macOS), so there is no standardized event loop for us to plug into.

The issue is that this forces a Send bound on the WindowHandler, which is only necessary for this workaround to work(Windows and macOS always keep everything on the main thread).

VST3 and CLAP now have support for either timer, or more ideally for watching any File Descriptor, and have the host call us back when any new event arrives on those. This allows us to indirectly plug into the host's event loop without blocking anything, and is how most (if not all?) plugins work in those formats.

We should augment the Host API to support timer and FD extensions, which would allow us to drop the Send bound and simplify quite a bit of code on the baseview side.

This however is a breaking change, not because of dropping the Send requirement, but because it will require all users to implement the new Host API.

Vorherrschende Sprache
Rust
Sterne
387
Forks
128
Ø Merge
3 T. 2 Std.
Gemergte PRs (30 T.)
15

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus RustAudio/baseview

Alle Issues in RustAudio/baseview

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.