diff --git a/src/BtFileAllocationEntry.cc b/src/BtFileAllocationEntry.cc index d173b7ce09..c026e29660 100644 --- a/src/BtFileAllocationEntry.cc +++ b/src/BtFileAllocationEntry.cc @@ -81,6 +81,13 @@ void BtFileAllocationEntry::prepareForNextAction( std::end(fileEntries))) { rg->createNextCommandWithAdj(commands, e, 0); } + + try { + rg->saveControlFile(); + } + catch (RecoverableException& e) { + A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e); + } } else { #ifdef __MINGW32__ diff --git a/src/StreamFileAllocationEntry.cc b/src/StreamFileAllocationEntry.cc index fdb16f6001..97011dd1c2 100644 --- a/src/StreamFileAllocationEntry.cc +++ b/src/StreamFileAllocationEntry.cc @@ -46,6 +46,7 @@ #include "FileEntry.h" #include "PieceStorage.h" #include "DiskAdaptor.h" +#include "LogFactory.h" namespace aria2 { @@ -97,6 +98,15 @@ void StreamFileAllocationEntry::prepareForNextAction( else { rg->createNextCommandWithAdj(commands, e, 0); } + + if (!rg->allDownloadFinished()) { + try { + rg->saveControlFile(); + } + catch (RecoverableException& e) { + A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e); + } + } } } // namespace aria2