Skip to content

Commit 9a2e20f

Browse files
committed
Revert "IORing backends: allow ring to be specified at initialization"
This reverts commit 68c4118. Unfortunately this appears to cause compile issues with some API consumers. We probably need a flag instead to indicate whether the shared IORing should be used.
1 parent 68c4118 commit 9a2e20f

File tree

2 files changed

+17
-24
lines changed

2 files changed

+17
-24
lines changed

Sources/SwiftOCA/OCP.1/Backend/Ocp1IORingConnection.swift

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@ import Foundation
2323
#endif
2424

2525
import Glibc
26-
import IORing
2726

2827
#if swift(>=6.0)
28+
internal import IORing
2929
internal import IORingFoundation
3030
internal import IORingUtils
3131
#else
32+
@_implementationOnly import IORing
3233
@_implementationOnly import IORingFoundation
3334
@_implementationOnly import IORingUtils
3435
#endif
@@ -57,7 +58,6 @@ fileprivate extension Errno {
5758
}
5859

5960
public class Ocp1IORingConnection: Ocp1Connection, Ocp1MutableConnection {
60-
fileprivate let _ring: IORing
6161
fileprivate let _deviceAddress: Mutex<any SocketAddress>
6262
fileprivate var _socket: Socket?
6363
fileprivate var _type: Int32 {
@@ -66,34 +66,29 @@ public class Ocp1IORingConnection: Ocp1Connection, Ocp1MutableConnection {
6666

6767
public convenience init(
6868
deviceAddress: Data,
69-
options: Ocp1ConnectionOptions = Ocp1ConnectionOptions(),
70-
ring: IORing = .shared
69+
options: Ocp1ConnectionOptions = Ocp1ConnectionOptions()
7170
) throws {
72-
try self.init(socketAddress: deviceAddress.socketAddress, options: options, ring: ring)
71+
try self.init(socketAddress: deviceAddress.socketAddress, options: options)
7372
}
7473

7574
fileprivate init(
7675
socketAddress: any SocketAddress,
77-
options: Ocp1ConnectionOptions,
78-
ring: IORing = .shared
76+
options: Ocp1ConnectionOptions
7977
) throws {
8078
_deviceAddress = Mutex(socketAddress)
81-
_ring = ring
8279
super.init(options: options)
8380
}
8481

8582
public convenience init(
8683
path: String,
87-
options: Ocp1ConnectionOptions = Ocp1ConnectionOptions(),
88-
ring: IORing = .shared
84+
options: Ocp1ConnectionOptions = Ocp1ConnectionOptions()
8985
) throws {
9086
try self.init(
9187
socketAddress: sockaddr_un(
9288
family: sa_family_t(AF_LOCAL),
9389
presentationAddress: path
9490
),
95-
options: options,
96-
ring: ring
91+
options: options
9792
)
9893
}
9994

@@ -145,18 +140,17 @@ public final class Ocp1IORingDatagramConnection: Ocp1IORingConnection {
145140

146141
override fileprivate init(
147142
socketAddress: any SocketAddress,
148-
options: Ocp1ConnectionOptions,
149-
ring: IORing
143+
options: Ocp1ConnectionOptions
150144
) throws {
151145
guard socketAddress.family == AF_INET || socketAddress.family == AF_INET6
152146
else { throw Errno.addressFamilyNotSupported }
153-
try super.init(socketAddress: socketAddress, options: options, ring: ring)
147+
try super.init(socketAddress: socketAddress, options: options)
154148
}
155149

156150
override public func connectDevice() async throws {
157151
let deviceAddress = _deviceAddress.criticalValue
158152
let socket = try Socket(
159-
ring: _ring,
153+
ring: IORing.shared,
160154
domain: deviceAddress.family,
161155
type: __socket_type(UInt32(_type)),
162156
protocol: 0
@@ -201,12 +195,11 @@ public final class Ocp1IORingDomainSocketDatagramConnection: Ocp1IORingConnectio
201195

202196
override fileprivate init(
203197
socketAddress: any SocketAddress,
204-
options: Ocp1ConnectionOptions,
205-
ring: IORing
198+
options: Ocp1ConnectionOptions
206199
) throws {
207200
guard socketAddress.family == AF_LOCAL else { throw Errno.addressFamilyNotSupported }
208201
localAddress = try sockaddr_un.ephemeralDatagramDomainSocketName
209-
try super.init(socketAddress: socketAddress, options: options, ring: ring)
202+
try super.init(socketAddress: socketAddress, options: options)
210203
}
211204

212205
override public func connectDevice() async throws {
@@ -274,7 +267,7 @@ public final class Ocp1IORingStreamConnection: Ocp1IORingConnection {
274267
let deviceAddress: any SocketAddress = _deviceAddress.criticalValue
275268

276269
let socket = try Socket(
277-
ring: _ring,
270+
ring: IORing.shared,
278271
domain: deviceAddress.family,
279272
type: __socket_type(UInt32(_type)),
280273
protocol: 0

Sources/SwiftOCADevice/OCP.1/Backend/IORing/Ocp1IORingDeviceEndpoint.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@ import FoundationEssentials
2525
import Foundation
2626
#endif
2727
import Glibc
28-
import IORing
2928

3029
#if swift(>=6.0)
30+
internal import IORing
3131
internal import IORingUtils
3232
#else
33+
@_implementationOnly import IORing
3334
@_implementationOnly import IORingUtils
3435
#endif
3536

@@ -63,14 +64,13 @@ public class Ocp1IORingDeviceEndpoint: OcaBonjourRegistrableDeviceEndpoint,
6364
address: any SocketAddress,
6465
timeout: Duration = OcaDevice.DefaultTimeout,
6566
device: OcaDevice = OcaDevice.shared,
66-
logger: Logger = Logger(label: "com.padl.SwiftOCADevice.Ocp1IORingDeviceEndpoint"),
67-
ring: IORing = .shared
67+
logger: Logger = Logger(label: "com.padl.SwiftOCADevice.Ocp1IORingDeviceEndpoint")
6868
) async throws {
6969
self.address = address
7070
self.timeout = timeout
7171
self.device = device
7272
self.logger = logger
73-
self.ring = ring
73+
ring = IORing.shared
7474
try await device.add(endpoint: self)
7575
}
7676

0 commit comments

Comments
 (0)