grpc / grpc/grpc-java

ManagedClientTransport.start should be better defined

Offen
#2,691 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
code health
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

Calling `ManagedClientTransport.start` returns a Runnable, but it isn't clear what to do with it, or when it should be called. While the code is annotated `@CheckReturnValue`, the annotation doesn't get inherited across class boundaries, leading to places where the value is ignored. `NettyClientTransportTest` contains several invocations of `start`, but ignores the return value due to `NettyClientTransport` currently returning null.

The difficulty of describing when and how the Runnable should be used feels indicative of shaky API. It would be nice to modify InternalSubchannel to not need to acquire locks to alleviate the need to run code outside of locks. This is not urgent.

@zhangkun83

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit dem Lesen von ManagedClientTransport.start, InternalSubchannel und den start-Aufrufen in NettyClientTransportTest. Ermittle den vorgesehenen Runnable-Lebenszyklus und ob die vorgeschlagenen Änderungen an der Sperre von InternalSubchannel im Umfang liegen; abgeschlossen ist die Aufgabe erst, wenn ein abgestimmter API-Vertrag sowie entsprechende Aufrufer und Tests vorhanden sind, die sich nicht mehr auf ignorierte oder null-Rückgabewerte verlassen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend-api-design, networking
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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