diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-09-04 13:39:42 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2019-09-04 13:39:43 -0400 |
commit | d794a0d3d95c3addcb21df75606c444c6e3ed6d8 (patch) | |
tree | 15f8b5995b67c1a80d7f32d35b17267b1c47d321 /src/lib/eio | |
parent | 917b5feb27d491801495962226e38a0c171daeef (diff) | |
download | efl-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.c | 81 |
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); } |