Accept any EventLoops in `.delegate(on:)`, not just ones from AHC's own ELG
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- swift
- Área
- networking
Línea de trabajo
Comienza en el punto de entrada .delegate(on:) y sigue la validación en tiempo de ejecución que restringe el EventLoop proporcionado al propio EventLoopGroup de AHC. Añade cobertura usando un EventLoop de un grupo separado y verifica después que la delegación funciona sin un crash, mientras los Channels subyacentes siguen estando gobernados por AHC.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The badly named but highly useful .delegate(on:) specifies two things:
- Which
EventLoopthe returned futures are bound to - Which
EventLoopthe delegate callouts happen on.
Crucially it does not specify on what EventLoop the underlying Channels are running on. Yes, as an optimisation if possible & sensible (i.e. the connection pool doesn't already have a valid connection) we try to create new Channels on the same EventLoop but that's neither guaranteed nor required.
Expected behaviour
If I pass a random EventLoop to AHC's eventLoop: .delegate(on: myRandomEL) then I would expect this to work, even if AHC itself is using an EventLoopGroup that doesn't contain my EventLoop for its Channels.
Actual behaviour
AHC crashes and tells me that I can only use EventLoops from AHC's EventLoopGroup at runtime. That's bad an unnecessary.
- Lenguaje dominante
- Swift
- Estrellas
- 1.1k
- Forks
- 156
- Merge medio
- 1 h 54 min
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de swift-server/async-http-client
-
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
-
Invalid state: idleAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
swift-server/async-http-client#927 · 2 comentarios ·
-
Windows versionAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
swift-server/async-http-client#923 · 1 comentario ·
-
Crash in `HTTP2ClientRequestHandler`Posiblemente ocupada @rupayon123 la tomó hace 17 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Todos los issues de swift-server/async-http-client
Issues similares
-
UI: "Block Music launches" toggle is dangerously easy to confuse with "Turn off Apple Music"Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
omlahore/RemoveMacAI#67 ·
Los mantenedores suelen responder en 1 día
-
[quality] macOSScreenshotLocation(): configured-location branch (ScreenshotFiles.swift:30) never executes under swift testPosiblemente ocupada @arteeh la tomó hoy. Abiertoagent/quality agent/reviewer help wanted kind/test stage/040-covered-by-pr testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
hivecommons/hotshot#249 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue windows
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Broken links in the docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
deltachat/deltachat-ios#3388 ·
Los mantenedores suelen responder en 1 día
-
desktop-app
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
raullenchai/Rapid-MLX#4975 ·
Los mantenedores suelen responder en 1 día