aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-08-19 16:10:34 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-08-19 16:17:47 +0200
commitbcb0ac27e834fbd0b6fb0932a8734ff529a335bb (patch)
tree17271027977174cde7f901b5011d8c4e91b915bf
parenteio: fix poll backend (diff)
downloadefl-devs/bu5hm4n/work_eio.tar.gz
efl_io_model: remove custom counting logicdevs/bu5hm4n/work_eio
this logic brings a few problems: - When files are annonced here, without the monitor having the context of the files, immidiat actions like deletion of the file are resulting in no deletion event. Which is definitly a bug, so we need to wait here for the monitor. - When a new count is annonced before the files are there from the monitor, we are heading towards the same issue - additionally, we might already have files available, due to the custom counting that are not annoncned through the monitor, which means, at a later pointer we are annoncing a new file which is already available via the API. Right now i do not see a way to continue with this code, it caused major issues with our CI and the POLL backend, for now things do work again. Differential Revision: https://phab.enlightenment.org/D9625
-rw-r--r--src/lib/eio/efl_io_model.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/src/lib/eio/efl_io_model.c b/src/lib/eio/efl_io_model.c
index 824a27c8a8..a73a37a5f3 100644
--- a/src/lib/eio/efl_io_model.c
+++ b/src/lib/eio/efl_io_model.c
@@ -755,63 +755,6 @@ _efl_io_model_efl_model_property_set(Eo *obj,
return efl_loop_future_rejected(obj, err);
}
-static void
-_efl_io_model_children_list(void *data, Eina_Array *entries)
-{
- Eina_File_Direct_Info *info;
- Efl_Model *obj = data;
- Efl_Io_Model_Data *pd;
- Efl_Model_Children_Event cevt = { 0 };
- Eina_Array_Iterator iterator;
- unsigned int i;
-
- pd = efl_data_scope_get(obj, EFL_IO_MODEL_CLASS);
- if (!pd) return ;
-
- EINA_ARRAY_ITER_NEXT(entries, i, info, iterator)
- {
- Efl_Io_Model_Info *mi;
-
- if (_already_added(pd, info->path)) continue;
-
- if (pd->filter.cb)
- {
- if (!pd->filter.cb(pd->filter.data, obj, info))
- continue ;
- }
-
- mi = calloc(1, sizeof (Efl_Io_Model_Info));
- if (!mi) continue ;
-
- mi->path_length = info->path_length;
- mi->path = eina_stringshare_add(info->path);
-
- mi->name_start = info->name_start;
- mi->name_length = info->name_length;
- mi->type = _efl_io_model_info_type_get(info, NULL);
- mi->parent_ref = EINA_FALSE;
- mi->child_ref = EINA_TRUE;
-
- cevt.index = eina_list_count(pd->files);
- cevt.child = NULL;
-
- pd->files = eina_list_append(pd->files, mi);
-
- efl_event_callback_call(obj, EFL_MODEL_EVENT_CHILD_ADDED, &cevt);
- }
-
- efl_event_callback_call(obj, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, NULL);
-}
-
-static void
-_efl_io_model_children_list_cleanup(Eo *o EINA_UNUSED, void *data, const Eina_Future *dead_future EINA_UNUSED)
-{
- Efl_Io_Model_Data *pd = data;
-
- pd->request.listing = NULL;
- pd->listed = EINA_TRUE;
-}
-
/**
* Children Count Get
*/
@@ -828,30 +771,6 @@ _efl_io_model_efl_model_children_count_get(const Eo *obj, Efl_Io_Model_Data *pd)
{
_eio_build_st(obj, pd);
}
- else if (!pd->listed &&
- !pd->request.listing &&
- pd->info->type == EINA_FILE_DIR)
- {
- Efl_Io_Manager *iom;
- Eina_Future *f;
-
- iom = efl_provider_find(obj, EFL_IO_MANAGER_CLASS);
- if (!iom)
- {
- ERR("Could not find an Efl.Io.Manager on %p.", obj);
- return 0;
- }
-
- f = efl_io_manager_direct_ls(iom, pd->path, EINA_FALSE,
- (void*) obj, _efl_io_model_children_list, NULL);
-
- //start monitoring before listing is done
- //we will filter later on if we already published a file or not
- _efl_io_model_efl_model_monitor_add(pd);
- pd->request.listing = efl_future_then(obj, f,
- .free = _efl_io_model_children_list_cleanup,
- .data = pd);
- }
return eina_list_count(pd->files);
}