Skip to content

Commit fbaa7ce

Browse files
committed
When PipeAsStringHandler is destroyed, ensure that we flush any pending data
Otherwise, we would not handle the last line if it didn’t end with a newline character.
1 parent 47ca76b commit fbaa7ce

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

Sources/SwiftExtensions/PipeAsStringHandler.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ package actor PipeAsStringHandler {
2727
self.handler = handler
2828
}
2929

30+
deinit {
31+
if !buffer.isEmpty {
32+
queue.async { [handler, buffer] in
33+
handler(String(data: buffer, encoding: .utf8) ?? "<invalid UTF-8>")
34+
}
35+
}
36+
}
37+
3038
private func handleDataFromPipeImpl(_ newData: Data) {
3139
self.buffer += newData
3240
while let newlineIndex = self.buffer.firstIndex(of: UInt8(ascii: "\n")) {

0 commit comments

Comments
 (0)