WIP HWP: 닫을 때 다 연 PDF 묶음은 닫기를 기다림 (Windows 는 연 파일을 잡아 임시 폴더를 못 지웠음 - 통합 시험이 잡음), 만드는 중인 것만 기다리지 않음 · hwp_pdf_ffi 줄 끝 CRLF (검토 대기)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>hwp2
parent
d18b3b02ad
commit
0d2b14ce68
|
|
@ -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(); // 멈춘 바꾸기가 끝난 뒤에 닫힌다 (엔진이 한 번에 하나씩)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue