• SE-0388 Convenience Async[Throwing]Stream.makeStream methods • SE-0406 Backpressure support for AsyncStream • SE-0421 Generalize e ff ect polymorphism for AsyncSequence and AsyncIteratorProtocol • SE-0468 Hashable conformance for Async(Throwing)Stream.Continuation
{ group in group.addTask { for i in 0...9 { continuation.yield(i) } continuation.finish() } group.addTask { for await i in stream { print(i) } } } Γ͕͘͠λϓϧ
{ group in group.addTask { for i in 0...9 { continuation.yield(i) } continuation.finish() } group.addTask { for await i in stream { print(i) } } } ܧଓproducer͕͏ ετϦʔϜconsumer͕͏
= stream.makeAsyncIterator() while let element = await iterator.next() { // do something with 'element' } } https://github.com/swiftlang/swift-evolution/blob/main/proposals/0420-inheritance-of-actor-isolation.md
= stream.makeAsyncIterator() while let element = await iterator.next() { // do something with 'element' } } warning: passing argument of non-sendable type 'inout AsyncStream<Int>.Iterator' outside of main actor-isolated context may introduce data races https://github.com/swiftlang/swift-evolution/blob/main/proposals/0420-inheritance-of-actor-isolation.md
= stream.makeAsyncIterator() while let element = await iterator.next() { // do something with 'element' } } ؔࣗମMainActorʹִ͞ΕͯΔ ͍ͭ͜nonisolated https://github.com/swiftlang/swift-evolution/blob/main/proposals/0420-inheritance-of-actor-isolation.md
= stream.makeAsyncIterator() while let element = await iterator.next() { // do something with 'element' } } next()ͷҾͱΓͰ͋Δ͜ͷ2ͭڥքΛӽ͑Δ͜ͱʹͳΔ https://github.com/swiftlang/swift-evolution/blob/main/proposals/0420-inheritance-of-actor-isolation.md
Actor)?) • SE-0414 Region based isolationͷ໊લ͕ग़͍ͯΔ͕ɺ SE-0414͕͜ͷΛղܾ͍ͯ͠ΔΘ͚Ͱͳ͍ɾɾͱࢥ͏ next(isolation: #isolation)Λۦ͢Δ͜ͱͰɺRegion based isolationΛՃຯͨ͠ݱࡏͷconcurrency checkΛύε͠Α͏ͶɺͱಡΊͳ͍͜ͱͳ͍
Actor)?) • SE-0414 Region based isolationͷ໊લ͕ग़͍ͯΔ͕ɺ SE-0414͕͜ͷΛղܾ͍ͯ͠ΔΘ͚Ͱͳ͍ɾɾͱࢥ͏ next(isolation: #isolation)Λۦ͢Δ͜ͱͰɺRegion based isolationΛՃຯͨ͠ݱࡏͷconcurrency checkΛύε͠Α͏ͶɺͱಡΊͳ͍͜ͱͳ͍ SE-0313ʢSwift 5.5ʣ͔Β͋Δ
Actor)?) • SE-0414 Region based isolationͷ໊લ͕ग़͍ͯΔ͕ɺ SE-0414͕͜ͷΛղܾ͍ͯ͠ΔΘ͚Ͱͳ͍ɾɾͱࢥ͏ next(isolation: #isolation)Λۦ͢Δ͜ͱͰɺRegion based isolationΛՃຯͨ͠ݱࡏͷconcurrency checkΛύε͠Α͏ͶɺͱಡΊͳ͍͜ͱͳ͍ non-isolatedΛදݱ͢ΔͨΊʹඞཁ ݺͼग़͠ଆͷִ