WIP HWP: 닫을 때 다 연 PDF 묶음은 닫기를 기다림 (Windows 는 연 파일을 잡아 임시 폴더를 못 지웠음 - 통합 시험이 잡음), 만드는 중인 것만 기다리지 않음 · hwp_pdf_ffi 줄 끝 CRLF (검토 대기)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hwp2
RyuJongJin 2026-10-20 19:04:45 +09:00
parent d18b3b02ad
commit 0d2b14ce68
1 changed files with 4 additions and 2 deletions

View File

@ -275,9 +275,11 @@ class HwpSource extends ReaderSource {
_disposed = true; _disposed = true;
final open = [..._open.values]; final open = [..._open.values];
_open.clear(); _open.clear();
// 만드는 중인 묶음은 기다리지 않는다 (몇 분 걸릴 수 있음) - 끝나면 닫힌다 ([_openChunk] 가 _disposed 를 본다) // 다 연 묶음은 닫기를 기다리고 (열린 PDF 를 닫아야 임시 폴더를 지울 수 있다 - Windows 는 연 파일을 잡는다),
// 만드는 중인 묶음은 기다리지 않는다 (몇 분 걸릴 수 있음 - 끝나면 스스로 닫힌다, [_openChunk] 가 _disposed 를 본다)
for (final f in open) { 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<void>.delayed(const Duration(milliseconds: 200))]);
} }
doc.cancel(); // 바꾸는 중이면 다음 쪽에서 멈춘다 doc.cancel(); // 바꾸는 중이면 다음 쪽에서 멈춘다
await doc.close(); // 멈춘 바꾸기가 끝난 뒤에 닫힌다 (엔진이 한 번에 하나씩) await doc.close(); // 멈춘 바꾸기가 끝난 뒤에 닫힌다 (엔진이 한 번에 하나씩)