From 6b2ccebad391d13e2b003b201f301afee130df39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gwendal=20Roue=CC=81?= <gr@pierlis.com> Date: Sat, 28 Sep 2024 10:53:29 +0200 Subject: [PATCH] AsyncValueObservation is Sendable A Sendable async sequences plays well with apple/swift-async-algorithms --- GRDB/ValueObservation/ValueObservation.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/GRDB/ValueObservation/ValueObservation.swift b/GRDB/ValueObservation/ValueObservation.swift index 79eea431db..c7b2414bd3 100644 --- a/GRDB/ValueObservation/ValueObservation.swift +++ b/GRDB/ValueObservation/ValueObservation.swift @@ -384,11 +384,13 @@ extension ValueObservation { /// /// You build an `AsyncValueObservation` from ``ValueObservation`` or /// ``SharedValueObservation``. -public struct AsyncValueObservation<Element: Sendable>: AsyncSequence { +public struct AsyncValueObservation<Element: Sendable>: AsyncSequence, Sendable { public typealias BufferingPolicy = AsyncThrowingStream<Element, Error>.Continuation.BufferingPolicy public typealias AsyncIterator = Iterator - var bufferingPolicy: BufferingPolicy + // AsyncThrowingStream.Continuation.BufferingPolicy is obviously + // Sendable, but lacks Sendable conformance. + nonisolated(unsafe) var bufferingPolicy: BufferingPolicy var start: ValueObservationStart<Element> public func makeAsyncIterator() -> Iterator {