Browse Source

Fix - make fileHandle and clean it up, so it plays nice with coroutines.

Marcos Kirsch 7 years ago
parent
commit
dba1ca7968
1 changed files with 4 additions and 1 deletions
  1. 4 1
      httpserver-static.lua

+ 4 - 1
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