Bladeren bron

Fixed explicit Sendable issues. (#118)

Performed the necessary changes to enable compiler flag
-require-explicit-sendable.
Rafael Cepeda 6 maanden geleden
bovenliggende
commit
ddeefaa750

+ 2 - 2
Sources/GRPCNIOTransportCore/Client/HTTP2ClientTransport.swift

@@ -19,12 +19,12 @@ public import NIOCore
 
 /// A namespace for the HTTP/2 client transport.
 @available(gRPCSwiftNIOTransport 2.0, *)
-public enum HTTP2ClientTransport {}
+public enum HTTP2ClientTransport: Sendable {}
 
 @available(gRPCSwiftNIOTransport 2.0, *)
 extension HTTP2ClientTransport {
   /// A namespace for HTTP/2 client transport configuration.
-  public enum Config {}
+  public enum Config: Sendable {}
 }
 
 @available(gRPCSwiftNIOTransport 2.0, *)

+ 1 - 1
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolver+DNS.swift

@@ -57,7 +57,7 @@ extension ResolvableTarget where Self == ResolvableTargets.DNS {
 @available(gRPCSwiftNIOTransport 2.0, *)
 extension NameResolvers {
   /// A ``NameResolverFactory`` for ``ResolvableTargets/DNS`` targets.
-  public struct DNS: NameResolverFactory {
+  public struct DNS: NameResolverFactory, Sendable {
     public typealias Target = ResolvableTargets.DNS
 
     /// Create a new DNS name resolver factory.

+ 2 - 2
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolver+IPv4.swift

@@ -22,7 +22,7 @@ extension ResolvableTargets {
   ///
   /// IPv4 addresses can be resolved by the ``NameResolvers/IPv4`` resolver which creates a
   /// separate ``Endpoint`` for each address.
-  public struct IPv4: ResolvableTarget {
+  public struct IPv4: ResolvableTarget, Sendable {
     /// The IPv4 addresses.
     public var addresses: [SocketAddress.IPv4]
 
@@ -62,7 +62,7 @@ extension NameResolvers {
   ///
   /// The name resolver for a given target always produces the same values, with one endpoint per
   /// address in the target. This resolver doesn't support fetching service configuration.
-  public struct IPv4: NameResolverFactory {
+  public struct IPv4: NameResolverFactory, Sendable {
     public typealias Target = ResolvableTargets.IPv4
 
     /// Create a new IPv4 resolver factory.

+ 2 - 2
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolver+IPv6.swift

@@ -22,7 +22,7 @@ extension ResolvableTargets {
   ///
   /// IPv4 addresses can be resolved by the ``NameResolvers/IPv6`` resolver which creates a
   /// separate ``Endpoint`` for each address.
-  public struct IPv6: ResolvableTarget {
+  public struct IPv6: ResolvableTarget, Sendable {
     /// The IPv6 addresses.
     public var addresses: [SocketAddress.IPv6]
 
@@ -62,7 +62,7 @@ extension NameResolvers {
   ///
   /// The name resolver for a given target always produces the same values, with one endpoint per
   /// address in the target. This resolver doesn't support fetching service configuration.
-  public struct IPv6: NameResolverFactory {
+  public struct IPv6: NameResolverFactory, Sendable {
     public typealias Target = ResolvableTargets.IPv6
 
     /// Create a new IPv6 resolver factory.

+ 2 - 2
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolver+UDS.swift

@@ -22,7 +22,7 @@ extension ResolvableTargets {
   ///
   /// ``UnixDomainSocket`` addresses can be resolved by the ``NameResolvers/UnixDomainSocket``
   /// resolver which creates a single ``Endpoint`` for target address.
-  public struct UnixDomainSocket: ResolvableTarget {
+  public struct UnixDomainSocket: ResolvableTarget, Sendable {
     /// The Unix Domain Socket address.
     public var address: SocketAddress.UnixDomainSocket
 
@@ -62,7 +62,7 @@ extension NameResolvers {
   ///
   /// The name resolver for a given target always produces the same values, with a single endpoint.
   /// This resolver doesn't support fetching service configuration.
-  public struct UnixDomainSocket: NameResolverFactory {
+  public struct UnixDomainSocket: NameResolverFactory, Sendable {
     public typealias Target = ResolvableTargets.UnixDomainSocket
 
     public init() {}

+ 2 - 2
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolver+VSOCK.swift

@@ -22,7 +22,7 @@ extension ResolvableTargets {
   ///
   /// ``VirtualSocket`` addresses can be resolved by the ``NameResolvers/VirtualSocket``
   /// resolver which creates a single ``Endpoint`` for target address.
-  public struct VirtualSocket: ResolvableTarget {
+  public struct VirtualSocket: ResolvableTarget, Sendable {
     public var address: SocketAddress.VirtualSocket
 
     public init(address: SocketAddress.VirtualSocket) {
@@ -52,7 +52,7 @@ extension NameResolvers {
   ///
   /// The name resolver for a given target always produces the same values, with a single endpoint.
   /// This resolver doesn't support fetching service configuration.
-  public struct VirtualSocket: NameResolverFactory {
+  public struct VirtualSocket: NameResolverFactory, Sendable {
     public typealias Target = ResolvableTargets.VirtualSocket
 
     public init() {}

+ 2 - 2
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolver.swift

@@ -141,8 +141,8 @@ public protocol ResolvableTarget {}
 
 /// A namespace for resolvable targets.
 @available(gRPCSwiftNIOTransport 2.0, *)
-public enum ResolvableTargets {}
+public enum ResolvableTargets: Sendable {}
 
 /// A namespace for name resolver factories.
 @available(gRPCSwiftNIOTransport 2.0, *)
-public enum NameResolvers {}
+public enum NameResolvers: Sendable {}

+ 3 - 0
Sources/GRPCNIOTransportCore/Client/Resolver/NameResolverRegistry.swift

@@ -209,3 +209,6 @@ public struct NameResolverRegistry {
     return nil
   }
 }
+
+@available(*, unavailable)
+extension NameResolverRegistry: Sendable {}

+ 2 - 2
Sources/GRPCNIOTransportCore/Server/HTTP2ServerTransport.swift

@@ -20,12 +20,12 @@ internal import NIOHTTP2
 
 /// A namespace for the HTTP/2 server transport.
 @available(gRPCSwiftNIOTransport 2.0, *)
-public enum HTTP2ServerTransport {}
+public enum HTTP2ServerTransport: Sendable {}
 
 @available(gRPCSwiftNIOTransport 2.0, *)
 extension HTTP2ServerTransport {
   /// A namespace for HTTP/2 server transport configuration.
-  public enum Config {}
+  public enum Config: Sendable {}
 }
 
 @available(gRPCSwiftNIOTransport 2.0, *)