Eina_Bool destroyed : 1;
};
+static double fallback_interval = 60.0;
+static Eina_Hash *timer_hash;
+
static Eina_Bool _eio_monitor_fallback_timer_cb(void *data);
static void
Eio_Monitor_Backend *backend = data;
backend->work = NULL;
- backend->timer = ecore_timer_add(60.0, _eio_monitor_fallback_timer_cb, backend);
+ backend->timer = ecore_timer_add(fallback_interval, _eio_monitor_fallback_timer_cb, backend);
+ eina_hash_set(timer_hash, &backend, backend->timer);
}
static void
free(backend);
return;
}
- backend->timer = ecore_timer_add(60.0, _eio_monitor_fallback_timer_cb, backend);
+ backend->timer = ecore_timer_add(fallback_interval, _eio_monitor_fallback_timer_cb, backend);
+ eina_hash_set(timer_hash, &backend, backend->timer);
}
static Eina_Bool
Eio_Monitor_Backend *backend = data;
backend->timer = NULL;
+ eina_hash_set(timer_hash, &backend, NULL);
backend->idler = ecore_idler_add(_eio_monitor_fallback_idler_cb, backend);
return EINA_FALSE;
&& !defined HAVE_NOTIFY_KEVENT
void eio_monitor_backend_init(void)
{
+ timer_hash = eina_hash_pointer_new(NULL);
}
void eio_monitor_backend_shutdown(void)
{
+ eina_hash_free(timer_hash);
+ timer_hash = NULL;
}
void eio_monitor_backend_add(Eio_Monitor *monitor)
if (backend->work) ecore_thread_cancel(backend->work);
if (backend->timer) ecore_timer_del(backend->timer);
+ eina_hash_set(timer_hash, &backend, NULL);
backend->timer = NULL;
if (backend->idler) ecore_idler_del(backend->idler);
backend->idler = NULL;
/*============================================================================*
* API *
*============================================================================*/
+
+
+EAPI void
+eio_monitoring_interval_set(double interval)
+{
+ Eina_Iterator *it;
+ Ecore_Timer *timer;
+
+ EINA_SAFETY_ON_TRUE_RETURN(interval < 0.0);
+ fallback_interval = interval;
+ if (!timer_hash) return;
+ it = eina_hash_iterator_data_new(timer_hash);
+ EINA_ITERATOR_FOREACH(it, timer)
+ ecore_timer_interval_set(timer, fallback_interval);
+ eina_iterator_free(it);
+}