From dba1ca79683ab466b19fda2546b104bd20c9f457 Mon Sep 17 00:00:00 2001 From: Marcos Kirsch Date: Sun, 1 Jan 2017 23:02:18 -0600 Subject: [PATCH] Fix - make fileHandle and clean it up, so it plays nice with coroutines. --- httpserver-static.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/httpserver-static.lua b/httpserver-static.lua index 59958fa..68ba94c 100644 --- a/httpserver-static.lua +++ b/httpserver-static.lua @@ -9,16 +9,19 @@ return function (connection, req, args) -- Chunks larger than 1024 don't work. -- https://github.com/nodemcu/nodemcu-firmware/issues/1075 local chunkSize = 1024 - fileHandle = file.open(args.file) + local fileHandle = file.open(args.file) while bytesRemaining > 0 do local bytesToRead = 0 if bytesRemaining > chunkSize then bytesToRead = chunkSize else bytesToRead = bytesRemaining end local chunk = fileHandle:read(bytesToRead) connection:send(chunk) bytesRemaining = bytesRemaining - #chunk + --print(args.file .. ": Sent "..#chunk.. " bytes, " .. bytesRemaining .. " to go.") chunk = nil collectgarbage() end print("Finished sending: ", args.file) fileHandle:close() + fileHandle = nil + collectgarbage() end