From 0d2b14ce68ae89fb4d7f09dca7c081532c79f680 Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Tue, 20 Oct 2026 19:04:45 +0900 Subject: [PATCH] =?UTF-8?q?WIP=20HWP:=20=EB=8B=AB=EC=9D=84=20=EB=95=8C=20?= =?UTF-8?q?=EB=8B=A4=20=EC=97=B0=20PDF=20=EB=AC=B6=EC=9D=8C=EC=9D=80=20?= =?UTF-8?q?=EB=8B=AB=EA=B8=B0=EB=A5=BC=20=EA=B8=B0=EB=8B=A4=EB=A6=BC=20(Wi?= =?UTF-8?q?ndows=20=EB=8A=94=20=EC=97=B0=20=ED=8C=8C=EC=9D=BC=EC=9D=84=20?= =?UTF-8?q?=EC=9E=A1=EC=95=84=20=EC=9E=84=EC=8B=9C=20=ED=8F=B4=EB=8D=94?= =?UTF-8?q?=EB=A5=BC=20=EB=AA=BB=20=EC=A7=80=EC=9B=A0=EC=9D=8C=20-=20?= =?UTF-8?q?=ED=86=B5=ED=95=A9=20=EC=8B=9C=ED=97=98=EC=9D=B4=20=EC=9E=A1?= =?UTF-8?q?=EC=9D=8C),=20=EB=A7=8C=EB=93=9C=EB=8A=94=20=EC=A4=91=EC=9D=B8?= =?UTF-8?q?=20=EA=B2=83=EB=A7=8C=20=EA=B8=B0=EB=8B=A4=EB=A6=AC=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EC=9D=8C=20=C2=B7=20hwp=5Fpdf=5Fffi=20=EC=A4=84=20?= =?UTF-8?q?=EB=81=9D=20CRLF=20(=EA=B2=80=ED=86=A0=20=EB=8C=80=EA=B8=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- lib/core/hwp_source.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/core/hwp_source.dart b/lib/core/hwp_source.dart index 35fb729..2a595e5 100644 --- a/lib/core/hwp_source.dart +++ b/lib/core/hwp_source.dart @@ -275,9 +275,11 @@ class HwpSource extends ReaderSource { _disposed = true; final open = [..._open.values]; _open.clear(); - // 만드는 중인 묶음은 기다리지 않는다 (몇 분 걸릴 수 있음) - 끝나면 닫힌다 ([_openChunk] 가 _disposed 를 본다) + // 다 연 묶음은 닫기를 기다리고 (열린 PDF 를 닫아야 임시 폴더를 지울 수 있다 - Windows 는 연 파일을 잡는다), + // 만드는 중인 묶음은 기다리지 않는다 (몇 분 걸릴 수 있음 - 끝나면 스스로 닫힌다, [_openChunk] 가 _disposed 를 본다) for (final f in open) { - unawaited(f.then((c) => c.dispose(), onError: (Object _) {})); + final closing = f.then((c) => c.dispose(), onError: (Object _) {}); + await Future.any([closing, Future.delayed(const Duration(milliseconds: 200))]); } doc.cancel(); // 바꾸는 중이면 다음 쪽에서 멈춘다 await doc.close(); // 멈춘 바꾸기가 끝난 뒤에 닫힌다 (엔진이 한 번에 하나씩)