Skip to content

Commit d88ab9b

Browse files
committed
add docker compose setup for swift 5.8
motivation: prepare for swift 5.8 changes: * update use of Locks to address NIO warnings * update docker compose setup to use release version of 5.7 * add docker compose setup for nightly 5.8
1 parent fbdb075 commit d88ab9b

File tree

6 files changed

+33
-14
lines changed

6 files changed

+33
-14
lines changed

Sources/Lifecycle/Lifecycle.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ public struct ServiceLifecycle {
345345

346346
extension ServiceLifecycle {
347347
private static var trapped: Set<Int32> = []
348-
private static let trappedLock = Lock()
348+
private static let trappedLock = LifecycleLock()
349349

350350
/// Setup a signal trap.
351351
///
@@ -468,7 +468,7 @@ public class ComponentLifecycle: LifecycleTask {
468468
fileprivate let shutdownGroup = DispatchGroup()
469469

470470
private var state = State.idle(Registry())
471-
private let stateLock = Lock()
471+
private let stateLock = LifecycleLock()
472472

473473
/// Creates a ``ComponentLifecycle`` instance.
474474
///
@@ -849,7 +849,7 @@ internal class StatefulLifecycleTask<State>: LifecycleTask {
849849
let start: LifecycleStartHandler<State>
850850
let shutdown: LifecycleShutdownHandler<State>
851851

852-
let stateLock = Lock()
852+
let stateLock = LifecycleLock()
853853
var state: State?
854854

855855
init(label: String, start: LifecycleStartHandler<State>, shutdown: LifecycleShutdownHandler<State>) {
@@ -887,7 +887,7 @@ private class Registry {
887887

888888
private var _tasks: [LifecycleTask] = []
889889
private var keys: [LifecycleTasksContainer.RegistrationKey] = []
890-
private let lock = Lock()
890+
private let lock = LifecycleLock()
891891

892892
func add(_ tasks: [LifecycleTask]) -> [RegistrationKey] {
893893
// FIXME: better id generation scheme (cant use UUID)

Sources/Lifecycle/Locks.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import Glibc
3737
/// This object provides a lock on top of a single `pthread_mutex_t`. This kind
3838
/// of lock is safe to use with `libpthread`-based threading models, such as the
3939
/// one used by NIO.
40-
internal final class Lock {
40+
internal final class LifecycleLock {
4141
private let mutex: UnsafeMutablePointer<pthread_mutex_t> = UnsafeMutablePointer.allocate(capacity: 1)
4242

4343
/// Create a new lock.
@@ -71,7 +71,7 @@ internal final class Lock {
7171
}
7272
}
7373

74-
extension Lock {
74+
extension LifecycleLock {
7575
/// Acquire the lock for the duration of the given block.
7676
///
7777
/// This convenience method should be preferred to `lock` and `unlock` in

Tests/LifecycleTests/ComponentLifecycleTests.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,7 @@ final class ComponentLifecycleTests: XCTestCase {
844844
}
845845

846846
var state = State.idle
847-
let stateLock = Lock()
847+
let stateLock = LifecycleLock()
848848

849849
let queue = DispatchQueue(label: "test")
850850

@@ -929,7 +929,7 @@ final class ComponentLifecycleTests: XCTestCase {
929929
}
930930

931931
var state = State.idle
932-
let stateLock = Lock()
932+
let stateLock = LifecycleLock()
933933

934934
let expectedData = UUID().uuidString
935935
let item = Item(expectedData)
@@ -1677,7 +1677,7 @@ final class ComponentLifecycleTests: XCTestCase {
16771677
class TestMetrics: MetricsFactory, RecorderHandler {
16781678
var counters = [String: TestCounter]()
16791679
var timers = [String: TestTimer]()
1680-
let lock = Lock()
1680+
let lock = LifecycleLock()
16811681

16821682
public init() {}
16831683

@@ -1711,7 +1711,7 @@ class TestMetrics: MetricsFactory, RecorderHandler {
17111711
class TestCounter: CounterHandler {
17121712
let label: String
17131713
var _value: Int64
1714-
let lock = Lock()
1714+
let lock = LifecycleLock()
17151715

17161716
init(label: String) {
17171717
self.label = label
@@ -1740,7 +1740,7 @@ class TestMetrics: MetricsFactory, RecorderHandler {
17401740
class TestTimer: TimerHandler {
17411741
let label: String
17421742
var _value: Int64
1743-
let lock = Lock()
1743+
let lock = LifecycleLock()
17441744

17451745
init(label: String) {
17461746
self.label = label

Tests/LifecycleTests/Helpers.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class GoodItem: LifecycleTask {
2525
let shutdownDelay: Double
2626

2727
var state = State.idle
28-
let stateLock = Lock()
28+
let stateLock = LifecycleLock()
2929

3030
init(id: String = UUID().uuidString,
3131
startDelay: Double = Double.random(in: 0.01 ... 0.1),
@@ -67,7 +67,7 @@ class NIOItem {
6767
let shutdownDelay: Int64
6868

6969
var state = State.idle
70-
let stateLock = Lock()
70+
let stateLock = LifecycleLock()
7171

7272
init(eventLoopGroup: EventLoopGroup,
7373
id: String = UUID().uuidString,

docker/docker-compose.2004.57.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ services:
66
image: swift-service-lifecycle:20.04-5.7
77
build:
88
args:
9-
base_image: "swiftlang/swift:nightly-main-focal"
9+
ubuntu_version: "focal"
10+
swift_version: "5.7"
1011

1112
test:
1213
image: swift-service-lifecycle:20.04-5.7

docker/docker-compose.2004.58.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
version: "3"
2+
3+
services:
4+
5+
runtime-setup:
6+
image: swift-service-lifecycle:20.04-5.8
7+
build:
8+
args:
9+
base_image: "swiftlang/swift:nightly-5.8-focal"
10+
11+
test:
12+
image: swift-service-lifecycle:20.04-5.8
13+
environment:
14+
- SKIP_SIGNAL_TEST=true
15+
- FORCE_TEST_DISCOVERY=--enable-test-discovery
16+
17+
shell:
18+
image: swift-service-lifecycle:20.04-5.8

0 commit comments

Comments
 (0)