eio: ensure that the monitor starts when it is called to
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Tue, 2 Apr 2019 12:50:48 +0000 (08:50 -0400)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 8 Apr 2019 01:45:22 +0000 (10:45 +0900)
Summary:
we need to to this here, otherwise we effectfily start the monitor
later, which means, we can miss a change in the filesystem. However,
this makes things a lot slower.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8526

src/lib/eio/eio_monitor_poll.c

index 2788aee..55cdff6 100644 (file)
@@ -196,7 +196,7 @@ _eio_monitor_fallback_heavy_cb(void *data, Ecore_Thread *thread)
           }
 
         cmp->version = backend->version;
-        if (ecore_thread_check(thread)) break;
+        if (thread && ecore_thread_check(thread)) break;
      }
 
    if (it) eina_iterator_free(it);
@@ -346,6 +346,9 @@ eio_monitor_fallback_add(Eio_Monitor *monitor)
    backend->parent = monitor;
    monitor->backend = backend;
    monitor->fallback = EINA_TRUE;
+
+   //ensure this is initialized here
+   _eio_monitor_fallback_heavy_cb(backend, NULL);
    backend->work = ecore_thread_run(_eio_monitor_fallback_heavy_cb,
                                     _eio_monitor_fallback_end_cb,
                                     _eio_monitor_fallback_cancel_cb,