mod_http_file_share: Merge file expiry loops
authorKim Alvefur <zash@zash.se>
Tue, 30 Nov 2021 00:53:22 +0100
changeset 11997 aa60f4353001
parent 11996 876e1b6d6ae4
child 11998 f9b2325f6b50
mod_http_file_share: Merge file expiry loops Not sure what the benefit of two separate loops was, perhaps reduced memory usage by allowing archive query state to be garbage collected before moving on to deleting files. Never measured so probably not so. This simplifies a bit.
plugins/mod_http_file_share.lua
--- a/plugins/mod_http_file_share.lua	Tue Nov 30 00:52:07 2021 +0100
+++ b/plugins/mod_http_file_share.lua	Tue Nov 30 00:53:22 2021 +0100
@@ -477,29 +477,23 @@
 		local obsolete_uploads = array();
 		local i = 0;
 		local size_sum = 0;
+		local n = 0;
+		local problem_deleting = false;
 		for slot_id, slot_info in iter do
 			i = i + 1;
-			obsolete_uploads:push(slot_id);
 			upload_cache:set(slot_id, nil);
-			size_sum = size_sum + tonumber(slot_info.attr.size);
-		end
-
-		sleep(0.1);
-		local n = 0;
-		local problem_deleting = false;
-		obsolete_uploads:filter(function(slot_id)
-			n = n + 1;
-			if i % 100 == 0 then sleep(0.1); end
 			local filename = get_filename(slot_id);
 			local deleted, err, errno = os.remove(filename);
 			if deleted or errno == ENOENT then
-				return true;
+				size_sum = size_sum + tonumber(slot_info.attr.size);
+				obsolete_uploads:push(slot_id);
 			else
 				module:log("error", "Could not delete file %q: %s", filename, err);
 				problem_deleting = true;
-				return false;
 			end
-		end);
+			if i % 100 == 0 then sleep(0.1); end
+		end
+
 		-- obsolete_uploads now contains slot ids for which the files have been
 		-- deleted and that needs to be cleared from the database