Skip to content

Commit a950049

Browse files
committed
Clear the cache for the stream handler once a listener sinks it
1 parent 42669de commit a950049

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

ios/Classes/CachingStreamHandler.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class CachingStreamHandler<T>: NSObject, FlutterStreamHandler {
1515
private let cacheSemaphore = DispatchSemaphore(value: 1)
1616

1717
func add(_ taskId: String, _ value: T) {
18-
cacheSemaphore.wait()
19-
cache[taskId] = value
20-
cacheSemaphore.signal()
21-
2218
if let sink = eventSink {
2319
sink(value)
20+
} else {
21+
cacheSemaphore.wait()
22+
cache[taskId] = value
23+
cacheSemaphore.signal()
2424
}
2525
}
2626

@@ -35,6 +35,7 @@ class CachingStreamHandler<T>: NSObject, FlutterStreamHandler {
3535
for cacheEntry in cache {
3636
events(cacheEntry.value)
3737
}
38+
cache = [:]
3839
cacheSemaphore.signal()
3940

4041
self.eventSink = events

0 commit comments

Comments
 (0)