ManagedClientTransport.start should be better defined
- 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
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