]> git.e2factory.org Git - e2factory.git/commitdiff
e2lib: don't close debuglogfile early, improve performance
authorTobias Ulmer <tu@emlix.com>
Thu, 21 Dec 2017 19:30:56 +0000 (20:30 +0100)
committerTobias Ulmer <tu@emlix.com>
Mon, 10 Dec 2018 17:00:11 +0000 (18:00 +0100)
Signed-off-by: Tobias Ulmer <tu@emlix.com>
generic/e2lib.lua

index afa2204ec126938a7c05898af6b81afd7c7ede60..0ce0ee74e4fa80aa06fd66f65bfa345e871c3e53 100644 (file)
@@ -618,10 +618,12 @@ function e2lib.log(level, msg, nonewline)
 
     if e2lib.globals.debuglogfile then
         -- write out buffered messages first
-        for _,m in ipairs(e2lib.globals.debuglogfilebuffer) do
-            eio.fwrite(e2lib.globals.debuglogfile, m)
+        if #e2lib.globals.debuglogfilebuffer > 0 then
+            for _,m in ipairs(e2lib.globals.debuglogfilebuffer) do
+                eio.fwrite(e2lib.globals.debuglogfile, m)
+            end
+            e2lib.globals.debuglogfilebuffer = {}
         end
-        e2lib.globals.debuglogfilebuffer = {}
 
         eio.fwrite(e2lib.globals.debuglogfile, log_prefix .. msg)
     else
@@ -737,10 +739,6 @@ function e2lib.cleanup()
     if e2lib.globals.lock then
         e2lib.globals.lock:cleanup()
     end
-
-    if e2lib.globals.debuglogfile then
-        eio.fclose(e2lib.globals.debuglogfile)
-    end
 end
 
 --- exit from the tool, cleaning up temporary files and directories
@@ -751,8 +749,11 @@ function e2lib.finish(returncode)
         returncode = 0
     end
     e2lib.cleanup()
+
+    e2lib.logf(4, "exiting e2factory with returncode=%d", returncode)
     if e2lib.globals.debuglogfile then
         eio.fclose(e2lib.globals.debuglogfile)
+        e2lib.globals.debuglogfile = false
     end
     console.close()
     os.exit(returncode)