Commit Graph

649 Commits

Author SHA1 Message Date
Umesh Tanwar 3b4cbc56bb ecore_animator: use EINA_DBL_EQ for comparing double values
Summary:
EINA_FLT_EQ was used to compare double values. replace it with EINA_DBL_EQ

@fix
Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>

Reviewers: raster, cedric, singh.amitesh

Reviewed By: singh.amitesh

Subscribers: atulfokk

Differential Revision: https://phab.enlightenment.org/D4712

Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
2017-03-10 11:57:08 +05:30
Cedric BAIL b80cfb38a1 ecore: avoid potential crash on shutdown in Ecore_Exe 2017-03-09 16:17:58 -08:00
Cedric BAIL 614c255f3b ecore: add ecore_event_type_flush.
During shutdown it is possible that some event are still in ecore events
queue and get processed after the shutdown of the module that did emit them.
This would lead to crash in some case. The answer to this problem is to
normally manually track all ecore event in the queue and destroy them
before shutdown... Of course that make the API difficult to use and
basically nobody got it right.

This new API do actually as it says remove all the ecore event of a
certain type from ecore events queue. It is to be called on shutdown.

@fix
2017-03-09 16:17:58 -08:00
Chris Michael ad1e5ead40 ecore-anim: Remove unused variable
Gcc reports 'i' as unused here and checking the code confirms that, so
remove unused variable.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-09 08:51:18 -05:00
Ivan Furs c1a2c89ac8 win32: removed duplicate winsock2.h and added WIN32_LEAN_AND_MEAN in Ecore.h
Summary: winsock2.h is dublicate in src/lib/ecore/ecore_main.c

Reviewers: NikaWhite, an.kroitor, cedric, raster, rimmed, vtorri

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4688
2017-03-09 17:39:39 +09:00
Cedric BAIL 4e1567b41e ecore: switch back to use ecore_thread_wait.
We need to make sure that we wait properly on the animator thread
otherwise we end up with the animator finish callback being called
later on during the shutdown process which means trouble.
2017-03-07 11:08:52 -08:00
Jean Guyomarc'h ccbab08a4b ecore: fix build when debugging threads 2017-03-07 00:52:28 +01:00
Mike Blumenkrantz e263cbf9d0 Revert "ecore: forcefully flush pending event when ecore_shutdown is called."
This reverts commit 2c6808e4ee.

this breaks a number of expectations and guarantees in efl:

* causes unexpected event iteration during app startup before main loop begins
  - leads to event loss
* causes unexpected event iteration during app shutdown after main loop quits
  - leads to invalid memory access
* causes recursive event iteration during event handler callbacks
  - leads to ?????????????????????????????????????????????????????????????????

all of these can be easily seen by running enlightenment, and all of these cause
unexpected behaviors in enlightenment including, but not limited to, a lot of crashes

fix T5232
2017-03-03 11:56:04 -05:00
Marcel Hollerbach 097f9cfe5f ecore_thread: do not override the data field of a thread
otherwise a currently executed ecore_thread is going to pass a complete
wrong data to its callbacks.

fix T5175
fix T5173
2017-03-02 20:13:58 +01:00
Bryce Harrington ad109b0bc4 ecore: Fix typo in error message
Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D4689
2017-03-02 11:52:22 +09:00
Chris Michael b09dcc1e0e ecore: Don't use logging domains with spaces
Small patch to change the name of the ecore_animator logging domain.
Names with spaces in them make it impossible to export
EINA_LOG_LEVELS_GLOB inside a bashrc

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-01 10:50:52 -05:00
Cedric BAIL d8edf70c32 ecore: improve debugging of animator. 2017-02-28 11:04:34 -08:00
Cedric BAIL 2c6808e4ee ecore: forcefully flush pending event when ecore_shutdown is called.
If a component emit Ecore_Event and they aren't processed before the
call it call ecore_shutdown, there is no way to prevent this event
from being triggered after the component at shutdown itself. Which
may well lead to a use after free case. As we don't know which event
are pending and we also are not shuting down ecore completely as they
are still other component using it, we can only flush all pending event
right away.
2017-02-27 15:05:35 -08:00
Mike Blumenkrantz 83f38d2b2c ecore: do not access 'timer_thread' global from animator thread
@fix
2017-02-24 14:13:11 -05:00
Myoungwoon Roy, Kim e4b37d7cb4 doxygen: Fix typos & invalid statements in Ecore_Getopt and Ecore_Legacy
Summary: There are some typos and calogique statements in doxygen
of Ecore_Getopt and Ecore_Legacy so I had fixed typos and cacologique statements.

Test Plan: Doxygen revision

Reviewers: stefan, cedric, raster, Jaehyun_Cho

Subscribers: jpeg, conr2d

Differential Revision: https://phab.enlightenment.org/D4651
2017-02-13 19:54:29 +09:00
Carsten Haitzler b3f0db816a efl io - fix using wrong type for return values pointed to
this potentially could be a bug on 32bit systems. this fixes that and
addresses the warning that pointed it out
2017-02-11 23:13:00 +09:00
Carsten Haitzler a7d7af0d21 ecore pipe - fix warning of comparing integers of differing sizes 2017-02-11 23:13:00 +09:00
Derek Foreman 44804a9579 ecore: Don't call _ecore_fd_valid() in release builds
Not sure _ecore_fd_valid() is all that useful anymore, as the
commit that introduced it said it would be removed "before release"
a long time ago - it's a debug assist that probably doesn't need
to be in release builds.

(I'm counting syscalls on rpi3 - still, calling this an optimization
seems like a bit of a stretch.)
2017-02-10 12:13:06 -06:00
Stefan Schmidt 174f86b2e8 docs: ecore: document newly added efl model composite classes 2017-02-09 14:47:21 +01:00
Myoungwoon Roy, Kim 0f446c10be doxygen: fix typos, cacologique statements in API reference doxygen of Ecore_Common
Summary: There are some typos and calogique statements in doxygen of Ecore_Common so I had fixed typos, cacologique statements.

Test Plan: doxygen revision

Reviewers: stefan, cedric, raster, Jaehyun_Cho

Subscribers: conr2d, jpeg

Differential Revision: https://phab.enlightenment.org/D4650

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-02-08 11:09:18 -08:00
Cedric BAIL 4f2af24755 ecore: reset during timer callback execution doesn't make sense.
@fix
T3222
2017-02-07 16:39:02 -08:00
Carsten Haitzler 51c7c9bc99 ecore thread - up default 3 of thread workers to 4x cpu cures
this ups it from number of cpu cores to 4 times that (so if threads to
blocking i/o the spare cycles can be used up).
2017-02-08 08:48:35 +09:00
Myoungwoon Roy, Kim 1f1d52503e doxygen: fix typo, cacologique expressions in API reference doxygen.
Summary: Fix typos, cacologique expressions in Ecore API reference doxygen.

Test Plan: doxygen

Reviewers: stefan, cedric, raster, Jaehyun_Cho

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4646

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-02-07 13:28:50 -08:00
Cedric BAIL a8eeca3c2f ecore: make sure we always manipulate a valid timer. 2017-02-06 15:35:48 -08:00
Felipe Magno de Almeida 8054037992 efl: add composite model for boolean properties
Add Efl.Model.Composite.Boolean, a model for wrapping another Efl.Model and
adding boolean properties to its children.
Children of the given composite model will have the boolean properties
specified in Efl.Model.Composite.Boolean with the specified default value.
A call to Efl.Model.Property_set can change the property value for a child.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-02-06 15:26:27 -08:00
Larry Jr 093c592188 efl: add efl_model and efl_ui_view classes
Efl.Model.Container and Efl.Model.Item to efl/interfaces are used
to create Efl.Model objects with predefined property values.
This is useful to any situation where we want an Efl.Model with
explicit defined property values.

Efl.Ui.View and Efl.Ui.Factory are used to connect Efl.Models with
Widgets, Elm.Layout and Efl.Ui.Image has changed to use news interfaces

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-02-06 15:26:21 -08:00
Cedric BAIL de83cc77d3 ecore: handle initialization of timer correctly. 2017-02-06 14:29:56 -08:00
Chidambar Zinnoury cece2b53d7 ecore thread: Fix waiting.
Waiting would sometimes return as if the thread finished correctly while it is still running.

 This is because we’re waiting for the waiter data to be null… but this is always the case if the user-passed data is null!

 @fix
2017-02-04 23:44:31 +01:00
Cedric BAIL 7819333875 ecore: poller could actually be related to the main loop timing.
Reduce call to ecore_time_get which is a syscall to gettimeofday.
2017-02-03 13:05:44 -08:00
Gustavo Sverzut Barbieri 8dc853f230 ifdef RUN_IN_TREE logic.
This logic is only needed for autotools, cmake will replicate the
installation file structure and thus eina_prefix works out of box.
2017-02-03 12:36:38 -02:00
Cedric BAIL f66559a4cd ecore: avoid calling ecore_time_get everytime we create a timer.
This is particularly useful for ecore_timer_loop_add which are not
supposed to trigger any syscall. It does add a new requirement
on the EFL_LOOP_TIME_CLASS to always have an interval defined during
construction.
2017-02-02 16:56:57 -08:00
Gustavo Sverzut Barbieri f958921177 cmake: add ecore.
no tests or modules (which depend on eldbus).
2017-01-25 19:29:20 -02:00
Jean-Philippe Andre 4550b4cf83 eina: Introduce Eina_Slstr for short-lived strings
Built on top of the new 'postponed' free queue, the short-lived
strings API allows users to return new strings without caring
about freeing them. EFL main loop will do this automatically for
them you at a later point in time (at the end of an iteration).

The APIs provided will either duplicate (copy) or more generally
steal an existing string (char *, stringshare, tmpstr, strbuf),
taking ownership of it and controling its lifetime. Those strings
can then be safely returned by an API. From a user point of view,
those strings must be considered like simple const char *, ie.
no need to free() them and their validity is limited to the
local scope.

There is no function to remove such a string from the freeq.

The short lived strings API is not thread-safe: do not send a
short-lived object from one thread to another.

@feature
2017-01-17 14:20:55 +09:00
Daniel Kolesa 85fbc333dd eolian: enforce specification of both get and set in prop impls
Now you can't use the same syntax as you would for a method to
implement a property as whole, instead you need to specify the
getter and/or setter explicitly. This is to allow parent classes
to expand their properties without altering behavior of the child
classes.
2017-01-11 16:38:41 +01:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Marcel Hollerbach f32486ced5 ecore_thread: reset waiter and worker when we have failed
otherwise the func_end and func_cancel can get into a endless recursion.
2016-12-28 12:19:40 +01:00
Marcel Hollerbach 46131ea80c ecore_thread: null out the struct before returning it
it can contain old callback values which are not overwritten in every
case. This just ensures that in both cases, empty trasher or none empty
trasher, are returning the same state of the struct.
2016-12-27 17:55:25 +01:00
Daniel Kolesa c4cb70199f ecore: use new property impl syntax 2016-12-27 16:19:06 +01:00
Andrii Kroitor ea66c8302a ecore_main: don't wait on marked to delete handlers on Windows
This could lead to greedy wait with 100% CPU consumption because on wait
error we never reach actual handlers deletion.
2016-12-27 15:52:33 +02:00
Andrii Kroitor 792acc9f9e ecore_exe: do not try to send 0 bytes
Summary: This action is meaningless when communicating with child process.

Reviewers: barbieri

Reviewed By: barbieri

Subscribers: jpeg, vtorri, cedric, raster

Differential Revision: https://phab.enlightenment.org/D4510
2016-12-22 19:28:44 +02:00
Andrii Kroitor 7e156742b3 ecore_exe_win32: fix typo in input poll thread 2016-12-22 14:39:33 +02:00
Andrii Kroitor 11e687578d ecore_exe: fix send on Windows
Check for bytes written only if more than 0 bytes were sent.
I don't know why some efl code is trying to send 0 bytes, but that works on
Linux and therefore should be fixed on Windows.
2016-12-22 14:13:40 +02:00
Andrii Kroitor 053613db52 ecore: fix wait for stdin on Windows
We can't directly wait on stdin handle because it is signaled imediatly even
if there is no new data on input stream.
2016-12-22 14:13:40 +02:00
Andrii Kroitor bceb263910 ecore_exe is broken on Windows
Summary:
T4938

diff from @raster
Aaaargh! There is no other way to get code from diff on phab..

Reviewers: vtorri

Subscribers: vtorri, i.furs, cedric, jpeg, raster

Differential Revision: https://phab.enlightenment.org/D4448
2016-12-22 11:11:02 +09:00
Cedric BAIL ef166eff14 ecore: we need to process future and promise before the internal start loop. 2016-12-21 11:36:42 -08:00
Gustavo Sverzut Barbieri fd6dbe3393 efl_io_buffered_stream: eos-mark and flush sender on close.
By marking EOS on the outgoing queue we allow the sender to flush
pending data if that's possible.

This also fixes a typo in the condition for eos_mark, it operates on
outgoing, not incoming queue.
2016-12-20 10:18:33 -02:00
Gustavo Sverzut Barbieri c152aad8c5 efl_io_reader/writer: silent errors when operating on unset-objects.
if we're operating on unset objects, fd are now -1 and would complain,
relax that.
2016-12-20 10:18:33 -02:00
Gustavo Sverzut Barbieri 4d5105afeb efl_io_buffered_stream: if there is a copier, check if it's done.
Before we're exiting if there was nothing pending, but in some cases
this was too aggressive as the copier's source may be alive (ie:
not-EOS), however nothing was read to its internal buffer, thus no
pending.

Since the copier will track its source's EOS, just check if it's done.
2016-12-20 10:18:32 -02:00
Gustavo Sverzut Barbieri 829d1d71fb efl_io_copier: fix typo in efl_io_copier_flush().
We should check if destination 'can write', not source.
2016-12-20 10:18:32 -02:00
Gustavo Sverzut Barbieri 08c38713ce do not emit events from efl_io_closer_close() on destructor.
On destructor we're not supposed to emit events, I even thought that
would be implicit, but it's not. If we do, for example an event
handler that would 'efl_del()' on "EFL_IO_CLOSER_EVENT_CLOSED" would
trigger too-many unrefs.
2016-12-20 10:18:32 -02:00
Gustavo Sverzut Barbieri 963e3a793d efl_io_reader/writer: always set 'can_*' to FALSE on errors.
If user tries to read or write and that fails then set 'can_read' or
'can_write' to false, regardless of the error code.
2016-12-20 10:18:32 -02:00
Gustavo Sverzut Barbieri 2666e927a5 efl_io_copier: avoid extra copy, todo--.
Avoid the intermediate buffer and use the new eina_binbuf_expand() +
eina_binbuf_use(), reading directly to the binbuf.
2016-12-20 10:18:32 -02:00
Gustavo Sverzut Barbieri 22837eacc9 efl_io_copier: remove TODO leftovers.
Copier is based on Efl.Io.Reader.can_read,changed and
Efl.Io.Writer.can_write,changed, these events do not keep being posted
until it's actually read/written, instead they trigger only once when
the property change -- unlike Efl.Loop_Fd read/write events.
2016-12-20 10:18:32 -02:00
Cedric BAIL 77a7d6d9e5 ecore: remove float comparison warning from Ecore_Animator code. 2016-12-19 16:33:46 -08:00
Cedric BAIL 1a6dc04fa1 ecore: remove float comparison warning from Ecore_Poller code. 2016-12-19 16:33:46 -08:00
Cedric BAIL 667b4340b9 ecore: remove floating point comparison warning from Ecore_Thread code. 2016-12-19 16:33:46 -08:00
Cedric BAIL 0a05725cc1 ecore: remove floating point comparison warning from Ecore main loop code. 2016-12-19 16:33:46 -08:00
Cedric BAIL 172c07d5cd ecore: remove float comparison warning from Ecore_Pipe. 2016-12-19 16:33:46 -08:00
Gustavo Sverzut Barbieri dd5cdda64b more eo simplified to use Eina_Slice instead of pointer to.
Working directly with Eina_Slice is easier than a pointer to it,
requires no validation of the pointers and is cheap since it's just
putting together size_t + void*.

However we can't hint the user of 'const(Eina.Slice)' properties as
Eolian is incorrectly generating getters as:

   const Eina_Slice class_property_get(...)

which is makes compilers complain about ignored qualifiers:

   ../src/lib/ecore/efl_io_copier.eo.h:329:7: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]

Leave some TODO so @q66 can fix those.
2016-12-19 15:30:56 -02:00
Gustavo Sverzut Barbieri 25a9e1d886 Efl.Io.{Queue,Buffer,Buffered_Stream}: slice_get is now a property.
Previously we couldn't return a slice, instead required the user to
pass a slice and we'd fill it since Eolian couldn't generate fallbacks
for structures.

Since @q66 fixed eolian, we can now return the structure itself as
initially wanted, ditching some TODO from the code.
2016-12-19 15:30:56 -02:00
Gustavo Sverzut Barbieri fe668ef52c efl_io_file: initialize all fd to -1.
Since 0 is a valid fd, we should initialize these to -1.
2016-12-19 13:03:33 -02:00
Cedric BAIL 637073813b ecore: add helper to automatically connect a future result to a promise.
This helper is to be used likely with next and an external request.
2016-12-16 14:10:58 -08:00
Cedric BAIL ca1762be21 ecore: delay promise fulfillment to next loop iteration. 2016-12-16 14:10:58 -08:00
Cedric BAIL b85332fc89 ecore: remove useless information from header. 2016-12-16 10:42:59 -08:00
Cedric BAIL 5882c30a98 ecore: refactor promise propagation code. 2016-12-16 10:19:37 -08:00
Daniel Kolesa c813e94606 eolian: unary expr eval for floats and add a signed number mask
This adds a new mask for all signed numbers (sint + float) and
fixes unary expr evaluation for floats, as well as fixes eval
error messages.
2016-12-14 18:23:16 +01:00
Jean-Philippe Andre bcb251e6ab evas: Make evas object loop users
This makes efl_loop_get() work on evas objects, returning the
main loop as expected. Also make the loop a property of the
Loop_User class (shouldn't it be called Efl.Loop.User instead?)
2016-12-13 16:12:27 +09:00
Gustavo Sverzut Barbieri 47ddca0f42 Efl_Future: class name (string) using "." for namespace.
Following recent eolian change, the string must have "." to split
namespace, not "_".
2016-12-12 02:30:33 -02:00
Gustavo Sverzut Barbieri 21759f713a yoda-style inactivity timeout.
s/inactivity_timeout/timeout_inactivity/g so it matches the EFL names
with scope first, like timeout_connect, etc.
2016-12-12 02:30:33 -02:00
Gustavo Sverzut Barbieri e5b3d43c4f efl_io_closer_fd: fix warning on windows. 2016-12-09 19:12:33 -02:00
Gustavo Sverzut Barbieri 83cbcf7cb5 efl_io_copier: callbacks may close the copier.
direct or indirect events may trigger the user to close the buffer.
2016-12-09 13:47:04 -02:00
Gustavo Sverzut Barbieri 47f9d06d0b efl_io_buffered_stream: del inner_io if we're the parent.
This is a nice convenience if inner_io was reparented to the wrapper.
2016-12-09 13:47:04 -02:00
Jihoon Kim fdbc5a4019 Fix typo in doxygen about ecore_idler_add 2016-12-09 19:58:54 +09:00
Gustavo Sverzut Barbieri 994d66513f efl_io_buffered_stream: better detection of 'finished' state.
When used with sockets, if it's EOS (ie: remote peer terminated the
connection), but not closed, then it would not emit 'finished' event.

Now it does.
2016-12-08 11:40:45 -02:00
Gustavo Sverzut Barbieri c33ed61e17 efl_io_copier: expose pending_size and add debug to done_get.
In some cases the copier isn't done but you know there is not more
data to arrive at it, then you want to know if all pending data was
flushed from the copier's intermediate buffer to the destination, if
so you can call it closed yourself.
2016-12-08 11:40:45 -02:00
Gustavo Sverzut Barbieri bb5f91273c efl_io_buffered_stream: property and event 'progress'
useful to get feedback on when data was actually sent/received, and
how much.
2016-12-08 11:40:45 -02:00
Andrii Kroitor 52d4313bb6 ecore_exe: fix ecore_exe_send on Windows
Do not repeat already sent data.
Remove pipe_write.data_buf because data was sent directly anyway and it was
used only in this method.
2016-12-08 15:18:46 +02:00
Andrii Kroitor 6f6323d12e Revert "exore_exe: fix from @raster"
This reverts commit c505b754ce.

Accidentally pushed this with build fix. Sorry :(
This commit is related to T4938 and it's goint to be updated, checked and pushed later.
2016-12-08 14:16:38 +02:00
Andrii Kroitor c505b754ce exore_exe: fix from @raster 2016-12-08 14:07:02 +02:00
Vyacheslav Reutskiy 299471991c ecore_exe_win32: fix ecore_exe_send
Write to the child pipe corect data size.
@fix
2016-12-02 11:50:39 +02:00
Carsten Haitzler b3361f1aad ecore exe - handle scope data get null returns when ppl do bad things
peolpe using ecore_exe in threads... for example.
2016-12-01 08:49:25 +09:00
Jee-Yong Um 0e2a2cbacf eolian: remove all duplicated affix
Summary:
Currently eolian abbreviates when only the last word of class name and
the first word of method name are same, but this patch abbreviates
generated c name of function to remove all duplicated affix.
For example, "efl_io_closer_fd_closer_fd_set" will be "efl_io_closer_fd_set".

Reviewers: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4430

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-28 11:35:27 -08:00
Carsten Haitzler 81242af6f9 ecore animator - timer based ticker - add epoll support if available
the ecore time based animator that ticked away used select for
timeouts to listen to either a timeout OR the control fd that would
tell it to tick or not tick. my profiles show this as consuming 1.03%
of my profile sample time - just  the select call in the time based
animator. this adds the option of epoll + timerfd + having kernel
repeat the timer fd interval (since epoll timeouts at best can do 1ms
resolution). my profiling shows this to use 0.62% of profile time vs
1.03% for select, so it's a tiny win. this only compiles if epoll and
timerfd support have already been detected at compile time. it also
runtime falls back to select if epoll and timerfd setup fail.

@optimize
2016-11-27 17:21:51 +09:00
Gustavo Sverzut Barbieri 46341b329d efl_io_buffered_stream: wraps an I/O object and make it easy to use.
Since all other efl.io objects are low-level, the recommended approach
is to use an efl.io.copier. However when dealing with in-memory,
bi-directional comms like talking to a socket, we always end with 2
queues, 2 copiers and the annoying setup that is being replicated in
ecore_ipc, efl_debug and so on.

This class is the base to make it simpler. Other classes such as
Efl.Net.Socket.Simple, Efl.Net.Dialer.Simple and Efl.Net.Server.Simple
will use it to provide simpler code to users.

I guess we can call EFL+EO Java now?
2016-11-25 17:27:32 -02:00
Gustavo Sverzut Barbieri 16be61c7e1 efl_io_copier_flush: add may_block and ignore_line_delimiter parameters.
The may_block parameter is useful to force a flush without blocking on
read/write, sometimes particularly useful if ignore_line_delimiter is
true, then you get the data events without blocking -- as if a server
sending some content misses a trailing line delimiter, you do not want
to block on recv() but still want to flush data to user.

The ignore_line_delimiter parameter is useful if we're going to close
the copier and want to flush pending data which may exist due missing
trailing terminator. The close method will also force that if
destination can take more data.
2016-11-25 17:25:18 -02:00
Gustavo Sverzut Barbieri d9dafab785 efl_io_copier: expose 'done' property.
This property has a protected setter and will simplify both internal
implementation as well as usage.
2016-11-25 17:25:18 -02:00
Gustavo Sverzut Barbieri 4b28d5a989 docs: enhance efl_io_copier.
This is the core component of our new I/O subsystem, heavily used by
efl.net and the likes. Then make sure the documentation is good :-)
2016-11-24 15:22:45 -02:00
Stefan Schmidt d859d693be docs: efl_io_copier: fill gaps in eo file documentation 2016-11-24 15:33:10 +01:00
Gustavo Sverzut Barbieri 49399b385b efl_io_std{in,out,err}: do not spin on fd monitoring events.
as soon as we report 'can_read' or 'can_write', stop monitoring the
events until the user executes the operation, which will clear these
flags and we resume monitoring.
2016-11-24 02:11:56 -02:00
Cedric Bail b5fedfad7e ecore: use mempool for legacy idler allocation. 2016-11-23 18:50:19 -08:00
Gustavo Sverzut Barbieri 906bf6abf0 efl_loop_fd: more efficiently manage the Ecore_Fd_Handler.
instead of always delete and recreate it, modify if it already exists
and only delete if it's not needed anymore.

This results in epoll_ctl() to modify an existing handle, instead of
add one.
2016-11-24 00:30:02 -02:00
Gustavo Sverzut Barbieri 0a8fd379db efl_loop_fd: reduce number of _efl_loop_fd_reset()
When we're adding callbacks in an array, we may reduce 3 epoll_ctl()
to a single one.
2016-11-24 00:21:54 -02:00
Gustavo Sverzut Barbieri f1b94bdf7b efl_loop_fd: fix comparison that was breaking callback deletion.
Either we "--var" or we compare with "> 1" instead of "> 0", otherwise
callback_del will keep the flags set.
2016-11-24 00:17:59 -02:00
Gustavo Sverzut Barbieri 44d95dd408 efl_io_copier: do not emit data events if no data is available. 2016-11-23 12:57:10 -02:00
Gustavo Sverzut Barbieri 5c961bba9b efl_io_copier: add flush method.
This method will force a read-write cycle and returns if it's fully
done or not. It may be used to force data to be written before a
handle is deleted (when one can't wait for the data to be written
asynchronously).
2016-11-23 12:57:10 -02:00
Stefan Schmidt 242edea752 docs: ecore: add missing property doc for efl_io_file 2016-11-17 13:08:41 +01:00
Stefan Schmidt 6a322b1b2c docs: ecore: finish up eo file docs in ecore 2016-11-11 10:58:22 +01:00
Carsten Haitzler 2f6045abc0 ecore - add run state evlogs to know when we run (mainloop) or sleep 2016-11-10 16:22:34 +09:00
Cedric BAIL 08c3102dc0 ecore: remove ecore_thread_promise_run. 2016-11-07 10:49:02 -08:00
Carsten Haitzler 895f56aa64 ecore main loop - drive the free queue from the loops idle enterer
this will drive the free queue and make sure an idler will run through
pending frees once the loop has gone idle.
2016-11-06 13:13:10 +09:00