From af8414d2cb8010c74820aa12e18099334a035997 Mon Sep 17 00:00:00 2001 From: pyroscope Date: Sat, 22 Feb 2020 15:17:15 +0100 Subject: [PATCH 1/2] new method close_low_diskspace.normal Skip downloads with prio=3 (high) when checking for disk space --- src/command_events.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/command_events.cc b/src/command_events.cc index a60f1e63a..92b271ca8 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -216,7 +216,7 @@ void apply_import(const std::string& path) { if (!rpc::parse_command_file(pa void apply_try_import(const std::string& path) { if (!rpc::parse_command_file(path)) control->core()->push_log_std("Could not read resource file: " + path); } torrent::Object -apply_close_low_diskspace(int64_t arg) { +apply_close_low_diskspace(int64_t arg, uint32_t skip_prio) { core::DownloadList* downloadList = control->core()->download_list(); bool closed = false; @@ -224,7 +224,7 @@ apply_close_low_diskspace(int64_t arg) { while ((itr = std::find_if(itr, downloadList->end(), std::mem_fun(&core::Download::is_downloading))) != downloadList->end()) { - if ((*itr)->file_list()->free_diskspace() < (uint64_t)arg) { + if ((*itr)->priority() < skip_prio && (*itr)->file_list()->free_diskspace() < (uint64_t)arg) { downloadList->close(*itr); (*itr)->set_hash_failed(true); @@ -391,7 +391,8 @@ initialize_command_events() { core::Manager::create_quiet | core::Manager::create_start | core::Manager::create_raw_data)); CMD2_ANY_LIST ("load.raw_start_verbose", std::bind(&apply_load, std::placeholders::_2, core::Manager::create_start | core::Manager::create_raw_data)); - CMD2_ANY_VALUE ("close_low_diskspace", std::bind(&apply_close_low_diskspace, std::placeholders::_2)); + CMD2_ANY_VALUE ("close_low_diskspace", std::bind(&apply_close_low_diskspace, std::placeholders::_2, 99)); + CMD2_ANY_VALUE ("close_low_diskspace.normal", tr1::bind(&apply_close_low_diskspace, tr1::placeholders::_2, 3)); CMD2_ANY_LIST ("download_list", std::bind(&apply_download_list, std::placeholders::_2)); CMD2_ANY_LIST ("d.multicall2", std::bind(&d_multicall, std::placeholders::_2)); From ea65ab864058df50ad1779aa4d55d1281a6e211e Mon Sep 17 00:00:00 2001 From: pyroscope Date: Sun, 23 Feb 2020 03:41:53 +0100 Subject: [PATCH 2/2] close_low_diskspace.normal: use proper namespace (std) --- src/command_events.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/command_events.cc b/src/command_events.cc index 92b271ca8..962caca68 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -392,7 +392,7 @@ initialize_command_events() { CMD2_ANY_LIST ("load.raw_start_verbose", std::bind(&apply_load, std::placeholders::_2, core::Manager::create_start | core::Manager::create_raw_data)); CMD2_ANY_VALUE ("close_low_diskspace", std::bind(&apply_close_low_diskspace, std::placeholders::_2, 99)); - CMD2_ANY_VALUE ("close_low_diskspace.normal", tr1::bind(&apply_close_low_diskspace, tr1::placeholders::_2, 3)); + CMD2_ANY_VALUE ("close_low_diskspace.normal", std::bind(&apply_close_low_diskspace, std::placeholders::_2, 3)); CMD2_ANY_LIST ("download_list", std::bind(&apply_download_list, std::placeholders::_2)); CMD2_ANY_LIST ("d.multicall2", std::bind(&d_multicall, std::placeholders::_2));