File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed
Sources/AsyncAlgorithms/Buffer Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,14 @@ public struct AsyncBufferSequencePolicy: Sendable {
74
74
/// An `AsyncSequence` that buffers elements in regard to a policy.
75
75
@available ( AsyncAlgorithms 1 . 0 , * )
76
76
public struct AsyncBufferSequence < Base: AsyncSequence & Sendable > : AsyncSequence {
77
+ // Internal implementation note:
78
+ // This type origianlly had no requirement that the element is actually Sendable. However,
79
+ // that is technically an implementation detail hole in the safety of the system, it needs
80
+ // to specify that the element is actually Sendable since the draining mechanism passes
81
+ // through the isolation that is in nature sending but cannot be marked as such for the
82
+ // isolated next method.
83
+ // In practice the users of this type are safe from isolation crossing since the Element
84
+ // is as sendable as it is required by the base sequences the buffer is constructed from.
77
85
enum StorageType {
78
86
case transparent( Base . AsyncIterator )
79
87
case bounded( storage: BoundedBufferStorage < Base > )
You can’t perform that action at this time.
0 commit comments