This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository efm2.

View the commit online.

commit f47946f02676f1f684dc452e53a065b677351f06
Author: Carsten Haitzler (Rasterman) <[email protected]>
AuthorDate: Thu May 14 11:50:04 2026 +0100

    defer thumb generation until listing is done.
    
    so we don't hammer more io traffic on slow fs's that slows down the
    initial listing. do the hammering after listing is done.
---
 TODO.md                     | 3 ---
 src/backends/default/open.c | 7 ++++++-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/TODO.md b/TODO.md
index f74655f..712c910 100644
--- a/TODO.md
+++ b/TODO.md
@@ -3,9 +3,6 @@
 ## Now
 
 * Profile i/o and perf on slow fs's like sshfs to a slow remote host
-  * Find excess i/o and fix or find more optimal ways (cahce files?)
-  * queue thumb gens until listing is done
-  * find efl mutex holds causing eet loads to stall
 * .efm/.efm in dir set more than backend type (view mode and more)
 * DND auto-open dir on hover-over
 * File properties dialog
diff --git a/src/backends/default/open.c b/src/backends/default/open.c
index a2c5be9..97e51ff 100644
--- a/src/backends/default/open.c
+++ b/src/backends/default/open.c
@@ -64,7 +64,8 @@ static Eina_List          *sub_queue  = NULL;
 static int                 child_exes = 0;
 static Eina_Bool           auto_exit  = EINA_FALSE;
 static Eina_Bool           can_write  = EINA_FALSE;
-static Eina_Bool           files_all = EINA_FALSE;
+static Eina_Bool           files_all  = EINA_FALSE;
+static Eina_Bool           listing    = EINA_FALSE;
 // static Eina_List          *op_queue   = NULL;
 
 static Sub       *_sub_open(const char *path, const char *backend);
@@ -402,6 +403,7 @@ _file_thumb_flush(void)
   Eina_Strbuf *strbuf;
   const char  *dir = getenv("EFM_BACKEND_DIR");
 
+  if (listing) return;
   if (!dir)
     {
       fprintf(stderr, "EFM_BACKEND_DIR not set to path to backend dirs\n");
@@ -1293,6 +1295,7 @@ _monitor(const char *path)
 
   if (mon) return;
 
+  listing = EINA_TRUE;
   // is it a custom backend in this dir? XXX this is a security issue to
   // solve in future (front end?)
   strbuf = eina_strbuf_new();
@@ -1356,6 +1359,8 @@ err:
   // tell the front end our listing is done
   strbuf = cmd_strbuf_new("list-end");
   cmd_strbuf_print_consume(strbuf);
+  listing = EINA_FALSE;
+  _file_thumb_flush();
 }
 
 static Eina_Bool

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to