fixes
This commit is contained in:
parent
1cd7f17fc3
commit
878022bc0d
@ -3709,48 +3709,40 @@ void FileManager::memory_cleanup() {
|
|||||||
|
|
||||||
for (unsigned int i = 1; i < file_id_info_.size(); i++) {
|
for (unsigned int i = 1; i < file_id_info_.size(); i++) {
|
||||||
auto main_node_id = file_id_info_[i].node_id_;
|
auto main_node_id = file_id_info_[i].node_id_;
|
||||||
if (main_node_id == 0) {
|
if (main_node_id != 0) {
|
||||||
continue;
|
auto &node = file_nodes_[main_node_id];
|
||||||
}
|
if (node != nullptr && ((int32) i) == node->main_file_id_.get()) {
|
||||||
auto &node = file_nodes_[main_node_id];
|
if (time - file_id_insert_time_[i] > 5 /* MAIN FILE TTL */) {
|
||||||
|
for (auto &file_id : node->file_ids_) {
|
||||||
|
/* DESTROY ASSOCIATED QUERIES */
|
||||||
|
for (auto &query_id : queries_container_.ids()) {
|
||||||
|
auto query = queries_container_.get(query_id);
|
||||||
|
if (query != nullptr && file_id.get() == query->file_id_.get()) {
|
||||||
|
on_error(query_id, Status::Error(400, "FILE_DOWNLOAD_RESTART"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (node != nullptr && ((int32) i) == node->main_file_id_.get()) {
|
/* DESTROY ASSOCIATED FILE */
|
||||||
if (time - file_id_insert_time_[i] > 5 /* MAIN FILE TTL */) {
|
empty_file_ids_.push_back(file_id.get());
|
||||||
for (auto &file_id : node->file_ids_) {
|
file_id_info_[file_id.get()] = FileIdInfo();
|
||||||
/* DESTROY ASSOCIATED QUERIES */
|
}
|
||||||
|
|
||||||
|
/* DESTROY MAIN QUERY */
|
||||||
for (auto &query_id : queries_container_.ids()) {
|
for (auto &query_id : queries_container_.ids()) {
|
||||||
auto query = queries_container_.get(query_id);
|
auto query = queries_container_.get(query_id);
|
||||||
if (query != nullptr && file_id.get() == query->file_id_.get()) {
|
if (query != nullptr && ((int32)i) == query->file_id_.get()) {
|
||||||
on_error(query_id, Status::Error(400, "FILE_DOWNLOAD_RESTART"));
|
on_error(query_id, Status::Error(400, "FILE_DOWNLOAD_RESTART"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DESTROY ASSOCIATED NODE */
|
/* DESTROY MAIN FILE */
|
||||||
auto file_node_id = file_id_info_[file_id.get()].node_id_;
|
file_id_insert_time_[i] = INT64_MAX;
|
||||||
if (file_node_id != 0) {
|
empty_file_ids_.push_back(i);
|
||||||
file_nodes_[file_node_id] = nullptr;
|
file_id_info_[i] = FileIdInfo();
|
||||||
}
|
|
||||||
|
|
||||||
/* DESTROY ASSOCIATED FILE */
|
/* DESTROY MAIN NODE */
|
||||||
empty_file_ids_.push_back(file_id.get());
|
file_nodes_[main_node_id] = nullptr;
|
||||||
file_id_info_[file_id.get()] = FileIdInfo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DESTROY MAIN QUERY */
|
|
||||||
for (auto &query_id : queries_container_.ids()) {
|
|
||||||
auto query = queries_container_.get(query_id);
|
|
||||||
if (query != nullptr && ((int32) i) == query->file_id_.get()) {
|
|
||||||
on_error(query_id, Status::Error(400, "FILE_DOWNLOAD_RESTART"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DESTROY MAIN FILE */
|
|
||||||
file_id_insert_time_[i] = INT64_MAX;
|
|
||||||
empty_file_ids_.push_back(i);
|
|
||||||
file_id_info_[i] = FileIdInfo();
|
|
||||||
|
|
||||||
/* DESTROY MAIN NODE */
|
|
||||||
file_nodes_[main_node_id] = nullptr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user