[WIP] DO NOT MERGE - [core] Remove @unchecked Sendable
from Lambda Runtime (depends on PR#508)
#526
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR depends on #508
When removing the
NIOLockedBox
, we wanted to remove the last@unchecked Sendable
in the code.Motivation:
There is no good reason to bypass compiler verifications with
@unchecked Sendable
in this scenario. We would like to bring the extra verifications' benefit to the user of the library.Modifications:
Lambda handlers and all depending structs and functions are tagged @sendable
Result:
This adds a requirement on user defined handlers (the public API of this library).
Code like
is no longer accepted. The
handler
must marked@Sendable
Fortunately, thanks to the compiler type inference, this does not affect handlers passed as a closure, such as
As we expect this is the preferred way to write a handler, we think the change in the public API is acceptable. Only more advanced users will have to explicitly add the
@Sendable
conformance to their standalone handler functions.