summaryrefslogtreecommitdiff
path: root/src/lib/eio
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-09-04 13:39:42 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-09-04 13:39:43 -0400
commitd794a0d3d95c3addcb21df75606c444c6e3ed6d8 (patch)
tree15f8b5995b67c1a80d7f32d35b17267b1c47d321 /src/lib/eio
parent917b5feb27d491801495962226e38a0c171daeef (diff)
downloadefl-d794a0d3d95c3addcb21df75606c444c6e3ed6d8.tar.gz
efl_io_model: remove custom counting logic
Summary: 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. Depends on D9624 Reviewers: zmike, stefan_schmidt, cedric, felipealmeida Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9625
Diffstat (limited to 'src/lib/eio')
-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 e6b6149288..06f27f52ae 100644
--- a/src/lib/eio/efl_io_model.c
+++ b/src/lib/eio/efl_io_model.c
@@ -762,63 +762,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
*/
@@ -835,30 +778,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);
}