Skip to content

Commit ee669e9

Browse files
authored
Fix crash when recreating minimal connections (#480)
1 parent d379584 commit ee669e9

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

Sources/ConnectionPoolModule/PoolStateMachine+ConnectionGroup.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ extension PoolStateMachine {
592592

593593
let newConnectionRequest: ConnectionRequest?
594594
if self.connections.count < self.minimumConcurrentConnections {
595-
newConnectionRequest = .init(connectionID: self.generator.next())
595+
newConnectionRequest = self.createNewConnection()
596596
} else {
597597
newConnectionRequest = .none
598598
}

Tests/ConnectionPoolModuleTests/PoolStateMachineTests.swift

+4
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,10 @@ final class PoolStateMachineTests: XCTestCase {
375375
let connectionClosed = stateMachine.connectionClosed(connection)
376376
XCTAssertEqual(connectionClosed.connection, .makeConnection(.init(connectionID: 1), []))
377377
connection.closeIfClosing()
378+
let establishAction = stateMachine.connectionEstablished(.init(id: 1), maxStreams: 1)
379+
XCTAssertEqual(establishAction.request, .none)
380+
guard case .scheduleTimers(let timers) = establishAction.connection else { return XCTFail("Unexpected connection action") }
381+
XCTAssertEqual(timers, [.init(.init(timerID: 0, connectionID: 1, usecase: .keepAlive), duration: configuration.keepAliveDuration!)])
378382
}
379383

380384
}

0 commit comments

Comments
 (0)