From 3ddc4507eb0642aafc0122d4e6e61030d11d8d56 Mon Sep 17 00:00:00 2001 From: Hiroshi Kimura Date: Fri, 7 Jul 2023 13:31:34 +0900 Subject: [PATCH] Fix thread-safety (#16) --- Sources/Bulk/Core/BulkSink.swift | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Sources/Bulk/Core/BulkSink.swift b/Sources/Bulk/Core/BulkSink.swift index 17e1ee8..5995ba1 100644 --- a/Sources/Bulk/Core/BulkSink.swift +++ b/Sources/Bulk/Core/BulkSink.swift @@ -30,13 +30,15 @@ public final class BulkSink: BulkSinkType { guard let self else { return } - let elements = buffer.purge() - - self.targets.forEach { - $0.write(items: elements) + self.targetQueue.async { [self] in + let elements = buffer.purge() + + self.targets.forEach { + $0.write(items: elements) + } + + self.timer.tap() } - - self.timer.tap() } }