path: root/src/lib/eio (follow)
AgeCommit message (Collapse)Author
2018-12-03meson: use eolian_gen with -SMarcel Hollerbach
this ensures that eolian does not parse installed .eo files Differential Revision:
2018-11-30eio: simplify code by using helper that generate future directly.Cedric BAIL
The new helper help replace call to eina_future_resolved and eina_future_rejected with a scheduler lookup to just one function call. Reviewed-by: Xavi Artigas <> Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-30eio: we do not need to actually loop explicitely for the loop here.Cedric BAIL
Actually efl_loop_future_scheduler_get does lookup on the object and its provider someone that could be a loop provider and find a scheduler. There is no need to custom look for a loop provider. Reviewed-by: Xavi Artigas <> Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-30eio: simplify code by using proper helper.Cedric BAIL
efl_loop_promise_new is a helper function that does automatically figure out an available scheduler and create a promise from it. Basically replacing the call to eina_promise_new(efl_loop_future_scheduler_get(o), ...). Reviewed-by: Xavi Artigas <> Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-28eo-docs: Remove Doxygen tags from efl*.eo filesXavi Artigas
Summary: - Replace '\@ref name' with '@name' - Remove unused \@internal tag This tag affects text AFTER it, and there is no text after it. - Remove \@note tag Replaced with a simple NOTE: text, since eolian does not have an equivalent tag. - Remove spurious \@Efl... tags They should really be @Efl... - Remove \@p tags There is no eolian equivalent, and a simpler $ suffices in this case. Fixes T7482 Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7482 Differential Revision:
2018-11-23eo: rename efl_future_Eina_FutureXXX_then in efl_future_then as this has ↵Cedric BAIL
been available for some time. Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-23eio: switch Eio.Model to inherit from Efl.Model_Loop.Cedric BAIL
Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-23eio: use the right type of Eina_Value to report error.Cedric BAIL
Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-23efl: make Efl.Model.properties_get return an Iterator<string>.Cedric BAIL
Reviewed-by: Vitor Sousa da Silva <> Differential Revision:
2018-11-13eo: Avoid namespace clashes.Lauro Moura
Summary: This commit removes some clashes (i.e. names as classes and namespaces at the same time). It'll avoid nested items that are either forbidden (C#) or problematic (Python) in some languages. Reviewers: segfaultxavi, bu5hm4n, felipealmeida Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-11-09xxx - fix eina_future_then calls to pass sotrage val - fix warnsCarsten Haitzler (Rasterman)
2018-10-24meson: add eolian custom dependencies supportDaniel Kolesa
This uses the meson/ninja depfile functionality + eolian to make sure proper dependencies between generated files and .eo files are managed, to ensure consistent re-generation of all generated files that are affected upon .eo file modification. For custom rules with multiple outputs, Ninja currently does not support depfiles. Therefore, split those into two custom rules so that the depfiles functionality can be enabled. While this is ugly and slows down the process a little by having to invoke Eolian twice instead of once, it has to be done and it's still better than what we had in Autotools anyway. Differential revision: D7187 Fixes T6700.
2018-10-05meson: unify system propertiesMarcel Hollerbach
this unifies the system types into 4 boolean flags This fixes the fact that meson changed the system string accross versions. Differential Revision:
2018-10-02here comes mesonMarcel Hollerbach
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <> Differential Revision: Depends on D7011
2018-08-17eio/sentry: destroy event handlers when deleting sentryMike Blumenkrantz
this will crash due to invalid memory access if an event is triggered after the sentry is destroyed Differential Revision:
2018-08-12eio: fix poll backendMarcel Hollerbach
it seems that this should have been a pop call, not the function pointer. This key eina_array_pop is never used. Nor would the array get smaller, so i assume this should be a pop call. Differential Revision:
2018-07-10eio_model: Fix deleting files that don't have assigned types yetDerek Foreman
Summary: Trying to delete a file from a creation notification callback can fail. Sometimes the eio model test would sit forever in select() waiting for events that will never occur because of this. This happens since d84a268a71b09d585f1672b44ade698d7babe28d broke deleting of files that haven't yet been assigned a type. Before this commit a delete_me flag would be set before attempting to build a stat buf asynchronously, and then on completion the file would be deleted. I think this was changed because that could potentially race with other async calls and delete the file sooner than expected. So instead of reverting I've made a special delete path that shouldn't race with non-delete paths. Reviewers: devilhorns, zmike Reviewed By: zmike Subscribers: cedric, #committers, zmike Tags: #efl Differential Revision:
2018-06-28eio/fallback: avoid emitting monitor events if the backend is pending deletionMike Blumenkrantz
emitting events if the delete_me flag is set may result in events being emitted for an already-freed monitor, resulting in both invalid memory access and a deadlock later on if eio_shutdown has been called at this point this causes the monitoring thread to check the status of the backend during the block where the main loop and thread are in sync, avoiding any data races which could occur when checking the flag at another time, and also avoiding accessing the internals of the Ecore_Thread which could also have been deallocated during shutdown fix T7086 Differential Revision:
2018-06-28eio: add method for determining if a monitor is using the fallback mechanismMike Blumenkrantz
the fallback method of calling stat() on the monitored paths does not allow for various eio events to be emitted, meaning that any application which relies on those events can never receive them this provides a method for checking a monitor to determine which functionality is available, and also provides more explicit documentation regarding events that are not provided by fallback monitoring this method is marked as beta @feature Differential Revision:
2018-06-28eio/fallback: do not modify the children hash while iterating itMike Blumenkrantz
this is invalid use of the hash api and will cause a crash @fix Differential Revision:
2018-06-28eio/fallback: mark all fallback monitors as fallbacks, not just for win32Mike Blumenkrantz
@fix Differential Revision:
2018-06-28eio/fallback: fix MODIFY event emission on base path when monitoringMike Blumenkrantz
previously this sent a DELETE event any time the target file was modified @fix fix T7042 Differential Revision:
2018-06-28eio/fallback: remove intermediate idlerMike Blumenkrantz
for some reason, the fallback thread would exit -> create timer -> create idler -> create thread; the existence of the idler makes little sense and introduces variability in the timer interval @fix Differential Revision:
2018-06-28eio/fallback: fix fallback shutdown when threads existMike Blumenkrantz
threads should not be waited on here during shutdown since these same threads may be waiting on the main loop anyway instead, perform as much deallocation as possible, mark the monitor as deleted, and then set the thread to canceled and allow the thread to clean itself up during its cancel/end callback @fix Differential Revision:
2018-06-28eio/fallback: always create timer hash on fallback initMike Blumenkrantz
this is a required call in order for the fallback system to work Differential Revision:
2018-06-19eio: add method for setting the global file polling rate for fallback monitorsMike Blumenkrantz
Summary: the default value for the fallback poll monitor timer interval is 60.0 seconds, which is not useful for all cases, such as CI, where we don't care about cpu usage and just want things to process as fast as possible at all times this enables setting the interval to any value, ensuring that any existing timers are modified to use that value immediately @feature Reviewers: stefan_schmidt, bu5hm4n, raster, devilhorns, ManMower Reviewed By: bu5hm4n, ManMower Subscribers: ManMower, raster, bu5hm4n, cedric, #committers Tags: #efl Differential Revision:
2018-06-07Eio: fix eio_model children_slice_get allLarry Lira
2018-05-24eio: enforce eio model to have a parent that provide main loop access.Cedric BAIL
2018-05-13eolian: second batch of unused import removalsDaniel Kolesa
This fixes all remaining occurences introduced by false negatives in 6bcd70f01d527cb05c16bfde0bf85ce79bef465e. The rest was already fixed in 6be3809c04fad847e353edecf5b6eef3c8766df4.
2018-05-05eio: on error/cancel properly destroy weak reference.Cedric BAIL
2018-05-05eio: cancel idler on Eio.Model destruction properly.Cedric BAIL
2018-05-04eio: do not call efl_model_child_del at the end of build_st as that might ↵Cedric BAIL
result in the destruction of files.
2018-05-03eolian: switch Eina.Future instances to future<T>Daniel Kolesa
2018-05-02eio: prevent asynchronous destruction of object while thread is still running.Cedric Bail
2018-05-02eio: fix windows buildMike Blumenkrantz
Summary: S_ISSOCK does not exist because sockets do not exist Reviewers: vtorri, cedric Reviewed By: cedric Subscribers: cedric Differential Revision:
2018-05-01eio: remove last remnant of Efl_Promise.Cedric BAIL
2018-05-01efl: update Efl.Model to properly propagate ↵Cedric BAIL
2018-05-01eio: handle future cancellation properly for Efl.Io.Manager.Cedric BAIL
2018-04-30eio: migrate to the new efl.model API.Cedric Bail
2018-04-30eio: improve API by being const when not touching the object.Cedric BAIL
2018-04-30eio: remove unecessary helper function Efl.Io.Manager.Cedric Bail
2018-04-30eio: fix efl_io_manager_stat after conversion to Eina_Future.Cedric Bail
2018-04-30eio: convert efl_io_manager_stat_ls to use Eina_Future.Cedric Bail
2018-04-30eio: convert efl_io_manager_direct_ls to Eina_Future.Cedric Bail
2018-04-30eio: switch Efl.Io.Manager to actually use Array instead of Accessor (to ↵Cedric Bail
avoid unecessary callback).
2018-04-30eio: share _efl_io_manager_future_cancel with all of eio.Cedric BAIL
2018-04-30eio: allow access to Eina_Value Eina_Stat description from all part of the ↵Cedric BAIL
2018-04-24Efl.Loop_* (from Efl.Loop.*)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-17eolian gen: enable constness generation on property getter implsDaniel Kolesa
This changes a lot of things all across the EFL. Previously, methods tagged @const had both their external prototype and internal impl generated with const on object, while property getters only had const on the external API. This is now changed and it all has const everywhere. Ref T6859.
2018-03-29efl_add_ref - fis to use efl_add properly with a parent.Carsten Haitzler (Rasterman)
fixes bc18b7e7ad1f8c5d587400b27fabab0865017011 and 168849e8a08966ecc284e28f64126a3a85965965