Fix #4900: 修复 ManagedProcess#getLines 完成后不会解除锁定的问题 (#4913)

This commit is contained in:
Glavo
2025-12-03 16:19:17 +08:00
committed by GitHub
parent aae02bef50
commit c321453399

View File

@@ -113,16 +113,19 @@ public final class ManagedProcess {
*/ */
public List<String> getLines(Predicate<String> lineFilter) { public List<String> getLines(Predicate<String> lineFilter) {
lock.lock(); lock.lock();
try {
if (lineFilter == null)
return List.copyOf(lines);
if (lineFilter == null) ArrayList<String> res = new ArrayList<>();
return List.copyOf(lines); for (String line : this.lines) {
if (lineFilter.test(line))
ArrayList<String> res = new ArrayList<>(); res.add(line);
for (String line : this.lines) { }
if (lineFilter.test(line)) return Collections.unmodifiableList(res);
res.add(line); } finally {
lock.unlock();
} }
return Collections.unmodifiableList(res);
} }
public void addLine(String line) { public void addLine(String line) {