@@ -34,7 +34,7 @@ extension SourceKitLSPServer.Options {
34
34
/// that the server sends to the client.
35
35
public final class TestSourceKitLSPClient : MessageHandler {
36
36
/// A function that takes a request and returns the request's response.
37
- public typealias RequestHandler < Request: RequestType > = ( Request ) -> Request . Response
37
+ public typealias RequestHandler < Request: RequestType > = @ Sendable ( Request ) -> Request . Response
38
38
39
39
/// The ID that should be assigned to the next request sent to the `server`.
40
40
/// `nonisolated(unsafe)` is fine because `nextRequestID` is atomic.
@@ -72,7 +72,7 @@ public final class TestSourceKitLSPClient: MessageHandler {
72
72
///
73
73
/// `isOneShort` if the request handler should only serve a single request and should be removed from
74
74
/// `requestHandlers` after it has been called.
75
- private nonisolated ( unsafe) var requestHandlers: ThreadSafeBox < [ ( requestHandler: Any , isOneShot: Bool ) ] > =
75
+ private nonisolated ( unsafe) var requestHandlers: ThreadSafeBox < [ ( requestHandler: Sendable , isOneShot: Bool ) ] > =
76
76
ThreadSafeBox ( initialValue: [ ] )
77
77
78
78
/// A closure that is called when the `TestSourceKitLSPClient` is destructed.
@@ -287,12 +287,16 @@ public final class TestSourceKitLSPClient: MessageHandler {
287
287
/// The request handler will only handle a single request. If the request is called again, the request handler won't
288
288
/// call again
289
289
public func handleSingleRequest< R: RequestType > ( _ requestHandler: @escaping RequestHandler < R > ) {
290
- requestHandlers. value. append ( ( requestHandler: requestHandler, isOneShot: true ) )
290
+ requestHandlers. withLock { requestHandlers in
291
+ requestHandlers. append ( ( requestHandler: requestHandler, isOneShot: true ) )
292
+ }
291
293
}
292
294
293
295
/// Handle all requests of the given type that are sent to the client.
294
296
public func handleMultipleRequests< R: RequestType > ( _ requestHandler: @escaping RequestHandler < R > ) {
295
- requestHandlers. value. append ( ( requestHandler: requestHandler, isOneShot: false ) )
297
+ requestHandlers. withLock { requestHandlers in
298
+ requestHandlers. append ( ( requestHandler: requestHandler, isOneShot: false ) )
299
+ }
296
300
}
297
301
298
302
// MARK: - Conformance to MessageHandler
0 commit comments