* Do session save on exit from the main loop, and moved around

hash_resume_save.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@680 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2006-05-02 19:57:35 +00:00
parent 2b420e95a0
commit f01289ef12
3 changed files with 18 additions and 11 deletions
+14 -9
View File
@@ -155,6 +155,11 @@ DownloadList::erase(iterator itr) {
return base_type::erase(itr);
}
// void
// DownloadList::save(Download* d) {
// }
void
DownloadList::open(Download* download) {
try {
@@ -204,7 +209,9 @@ DownloadList::close_throw(Download* download) {
// better crash protection, save regulary in addition to this.
//
// Used to be in pause, but this was wrong for rehashing etc.
control->core()->download_store()->save(download);
//
// Reconsider this save. Should be done explicitly when shutting down.
//control->core()->download_store()->save(download);
control->core()->hash_queue()->remove(download);
download->download()->close();
@@ -311,11 +318,6 @@ DownloadList::pause(Download* download) {
}
}
void
DownloadList::save(Download* d) {
}
void
DownloadList::check_hash(Download* download) {
check_contains(download);
@@ -337,7 +339,10 @@ DownloadList::check_hash_throw(Download* download) {
close_throw(download);
download->download()->hash_resume_clear();
open_throw(download);
download->download()->hash_resume_save();
// If any more stuff is added here, make sure resume etc are still
// correct.
@@ -427,12 +432,12 @@ DownloadList::confirm_finished(Download* download) {
download->download()->tracker_list().send_completed();
download->download()->hash_resume_save();
// Do this before the slots are called in case one of them closes
// the download.
if (!download->is_active() && control->variable()->get_value("session_on_completion") == 1) {
download->download()->hash_resume_save();
if (!download->is_active() && control->variable()->get_value("session_on_completion") == 1)
control->core()->download_store()->save(download);
}
std::for_each(m_slotMapFinished.begin(), m_slotMapFinished.end(), download_list_call(download));
}
+2 -2
View File
@@ -84,6 +84,8 @@ public:
void erase(Download* d);
iterator erase(iterator itr);
//void save(Download* d);
void open(Download* d);
void open_throw(Download* d);
@@ -97,8 +99,6 @@ public:
void resume(Download* d);
void pause(Download* d);
void save(Download* d);
void check_hash(Download* d);
void check_hash_throw(Download* d);
+2
View File
@@ -244,6 +244,8 @@ main(int argc, char** argv) {
control->core()->get_poll_manager()->poll(client_next_timeout());
}
control->core()->download_list()->session_save();
control->cleanup();
} catch (std::exception& e) {