apple/swift-nio

ClientBootstrap.resolver is hard to use for single-use resolvers

Open

#2 434 ouverte le 26 mai 2023

Voir sur GitHub
 (3 commentaires) (0 réactions) (0 assignés)Swift (749 forks)batch import
good first issuekind/enhancement

Métriques du dépôt

Stars
 (8 453 stars)
Métriques de merge PR
 (Merge moyen 8j 5h) (18 PRs mergées en 30 j)

Description

Some resolvers (like NIO's internal GAIResolver) are use-exactly-once objects. They work only if used once (not 0 times, not twice).

ClientBootstrap.resolver is hard to use with those objects because one might want to pass around a pre-configured ClientBootstrap and then not use it or use it multiple times.

Maybe ClientBootstrap could offer a resolverFactory method that gets invoked exactly when we actually do the resolution.

The other option would that NIO could provide a Resolver type that wraps use-once resolvers and managed their lifetime (creates a fresh one when a resolution actually happens).

Guide contributeur