@@ -26,7 +26,7 @@ import NIOCore
26
26
/// level protocols ``EventLoopLambdaHandler`` and
27
27
/// ``ByteBufferLambdaHandler``.
28
28
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
29
- public protocol LambdaHandler : EventLoopLambdaHandler where Event : _AWSLambdaSendable {
29
+ public protocol LambdaHandler : EventLoopLambdaHandler {
30
30
/// The Lambda initialization method
31
31
/// Use this method to initialize resources that will be used in every request.
32
32
///
@@ -69,15 +69,16 @@ extension LambdaHandler {
69
69
}
70
70
71
71
/// unchecked sendable wrapper for the handler
72
+ /// this is safe since lambda runtime is designed to calls the handler serially
72
73
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
73
- fileprivate struct UncheckedSendableHandler < Underlying: LambdaHandler > : @unchecked Sendable {
74
+ fileprivate struct UncheckedSendableHandler < Underlying: LambdaHandler , Event , Output > : @unchecked Sendable where Event == Underlying . Event , Output == Underlying . Output {
74
75
let underlying : Underlying
75
76
76
77
init ( underlying: Underlying ) {
77
78
self . underlying = underlying
78
79
}
79
80
80
- func handle( _ event: Underlying . Event , context: LambdaContext ) async throws -> Underlying . Output {
81
+ func handle( _ event: Event , context: LambdaContext ) async throws -> Output {
81
82
try await self . underlying. handle ( event, context: context)
82
83
}
83
84
}
0 commit comments