Commit Graph

93 Commits

Author SHA1 Message Date
Tom Hacohen 4e285d6a32 Eio model: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-16 14:05:50 +00:00
Vivek Ellur d64f50acfc eio_monitor: fix memory leak in eio monitor module
Summary:
Free the allocated memory in eio monitor win32 module.

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-09 10:00:32 +02:00
Vivek Ellur 491fdb94b0 eio_monitor: fix memory leak issue
Summary:
@fix

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-09 10:00:32 +02:00
Cedric BAIL a4c588b1e4 eio: make poll backend pass eio_test_monitor.c test suite.
Summary: The current poll backend code uses only filename when reporting changes, while eio tests (and presumably other backends) use absolute path. This makes poll backends behavior more consistent with other backends.

Test Plan: Ran eio test suite with poll backend.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-04 16:22:49 +02:00
Cedric BAIL 1bd5a60c75 eio: improve documentation.
This set of documentation update basically make it clearer that Eio
use Eina and do cross linking of function used by Eio to Eina. It
also copy some of the warning coming from Eina documentation into Eio.
2015-10-01 14:13:51 -07:00
Amitesh Singh 17a891e00d eio: fix typo in documentation 2015-09-28 21:57:35 +05:30
Cedric BAIL d00deaaef3 eio: add kevent backend.
Summary: Implement basic kqueue/kevent backend for eio. When it comes to tracking directory changes, this backend falls back to the polling one.

Test Plan: Ran Enlightenment for several days and some other EFL apps without any issue.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #e_on_freebsd, #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-22 00:13:38 +02:00
Guillaume Friloux 1cc4d91dd5 eio: unify deletion of eina_file_ls's iterator.
Due to a bug with eio_file_stat_ls(), a previous patch
(73a23401ef) was written.

This patch change the way we delete returned eina iterator
from eina_file_ls in _eio_file_eina_ls_heavy() from a separate
thread, into eio_async_end() from the main thread.

To clarify the code, and avoid a useless call to
eina_iterator_free(), this patch also moves the deletion
of the same eina iterator from _eio_file_heavy() into
eio_async_end() as well.
2015-09-03 10:19:12 +01:00
Cedric BAIL c11f40a3eb eio: limit race condition during shutdown. 2015-08-19 20:22:57 +02:00
Daniel Kolesa 18502b8429 efl: fix doc references across the tree to validate right 2015-07-08 15:13:26 +01:00
Daniel Kolesa 7d40ec0ad9 ector,ecore,eio,emotion: convert some docs 2015-06-10 14:35:11 +01:00
Tom Hacohen 6efbfe227a Eo: Add a return value to eo_constructor().
From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.

This is one of the final steps towards stabilizing Eo.

@feature
2015-05-20 13:03:24 +01:00
Daniel Kolesa 058a9c9d88 eolian: new syntax for params/values/keys
Instead of "@in type name;" we now use "@in name: type;". This change
is done because of consistency with the rest of Eolian; pretty much
every other part of Eolian syntax uses the latter form.

This is a big breaking change in the .eo format, so please update your
.eo files accordingly and compile Elementary together with the EFL.

@feature
2015-05-18 16:14:31 +01:00
Yomi 2305084d09 eio: fix grammar and spelling mistakes in Eio.h.
Summary: Fix grammar and spelling mistakes in Eio.h

Reviewers: cedric

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-10 23:02:11 +02:00
Cedric BAIL 84ddee331b eio: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Carsten Haitzler 7d36abad25 eio - fix crashes due to stale eio files in tracking list
so eio_eet didnt free fiels the same as the rest of eio. it thought it
was special. it thought it could just go free() it's objects (even
though they inherit the core Eio_File object type in their structs).
everyone else ended up calling eio_file_free() EXCEPT eio_eet. so the
eio_(long)_file_set() funcs ewnded up adding this eio file to the
tracking list via eio_file_register() but never unregistered because
they really liked to just do their own thing anyway...

BAD CEDRIC! SPANKING TIME

http://33.media.tumblr.com/3422c76c33c3b9b045f623ff73e0bf8d/tumblr_mhvu61N9br1rbavngo1_500.gi

so this unifies all allocation to now use a single allocator (that
also ensures all eio async io objects are zero'd out), and a SINGLE
free path, and then it all works. no more valgrind complaints on e
shutdown/restart whilst eio "things" were used before or ... maybe
still around.

this should fix T2129

so try again "git master" after this commit.

@fix
2015-04-20 21:55:24 +09:00
Cedric BAIL 0784d5cc2a eio: reorder include to fix build on Windows. 2015-04-18 17:28:46 +02:00
Cedric BAIL b3cbb14af7 eio: correct header inclusion for Windows. 2015-04-14 22:27:40 +02:00
Felipe Magno de Almeida cdd597cb56 eio-model: Fixed concurrent access to filter_cb and monitoring empty directories
Added a spinlock, since contetion should be non-existant. And removed wrong if.
2015-04-10 17:23:12 -03:00
Felipe Magno de Almeida 22cfae5b8c eio_monitor: Removed unnecessary eio_file_direct_stat
Removed unnecessary asynchronous stat, which could make eio_monitor to
lose events between the monitor creation and stat completion.
2015-04-10 17:23:12 -03:00
Felipe Magno de Almeida d02f99ee21 eio-model: Fix Eio model races in tests
Removed sleep and implemented a deterministic way to test if the test has really finished.
2015-04-09 22:47:17 -03:00
Felipe Magno de Almeida 7928609a29 efl: move emodel to be an efl interfaces. 2015-04-05 16:23:38 +02:00
Larry Jr 2f53833331 emodel: api change property_get/set and event modelchange 2015-04-05 15:19:55 +02:00
Cedric BAIL 23cfd2b4f4 eio: fix coding style of Eio_Model. 2015-04-05 15:19:53 +02:00
Cedric BAIL 92be4f9c89 eio: use Eina_Log in Eio_Model. 2015-04-05 15:19:52 +02:00
Larry Jr 9ed6bea380 emodel: API changes and removed unnecessary eina_values copy and stringshares 2015-04-05 15:19:49 +02:00
Guilherme Lepsch 68a31df227 eio: fix mismatch datatypes for internal data model properties. 2015-04-05 15:19:47 +02:00
Larry Jr 05eecf5c8f emodel: Created Emodel and Eio_Model. 2015-04-05 15:19:45 +02:00
pierre lamot de767cabfa eio: don't restart a monitor on MacOSX when every paths have been removed.
This patch check that when a monitor is removed the FSEvent service, it is
not restarted if there is no more paths to monitor. This was generating an
error message from FSEvent.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot d958afd9fd eio: add OSX implementation of eio_monitor based on FSEvent
this patch adds an implementation of eio_monitor based on FSEvent
for OSX. This implentation has some limitations compared to inotify
implementation. Folowing events are not detected:
  - EIO_MONITOR_FILE_CLOSED
  - EIO_MONITOR_SELF_RENAME
  - EIO_MONITOR_SELF_DELETED

It should be noted that some events that happend before the call
to eio_monitor_add can be catched. This is why sleep timers have
been added in the test suite.

Tests have been added to check uncovered scenarios.

some things might still be improved:
  - self_deleted events for files might be handled by checking the
    file_name manually

  - self_deleted events for directories might be handled by setting
    kFSEventStreamCreateFlagWatchRoot. I've noticed by doing so that
	a lot more unwanted event are raised

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:59 +01:00
michelle legrand 73823ac7b0 eio: fix segmentation fault on eio_monitor for win32 api
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
michelle legrand a9035c1cf5 eio: check that the file to be monitored is not an empty string.
This fix segmentation faults on Windows caused by eio_monitor events.

@fix
2015-02-11 17:03:37 +01:00
michelle legrand db55e76a4a eio: Win32 make GetOverlappedResult function non-blocking
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-30 10:49:49 +01:00
Cedric BAIL e6ff0a53ae eio: forcefully wait on shutdown for all thread to stop.
This should avoid potential crash during shutdown while some Eio thread
were still running. We are still not blocking for more than 30s, so if
an IO is blocked on a dead device, you should be fine.
2015-01-07 16:45:07 +01:00
Jean-Philippe Andre 8d9c6c0a00 inotify: Fix safety after read in 3 places
Fixes Coverity issues:
 - CID 1039565
 - CID 1039566
2014-10-28 10:54:51 +09:00
Adrien Nader 73d58b9446 eio: add doc for returns of eio_file_{mkdir,move,copy}, eio_dir_{move,copy}. 2014-10-20 18:28:19 +02:00
Philippe Caseiro a10d8585c9 eio: documentation for return values.
- eio_file_copy
 - eio_file_move
 - eio_dir_copy
 - eio_dir_move
 - eio_dir_unlink
2014-10-20 18:28:14 +02:00
Cedric BAIL 5e5e602ab0 eio: actually correctly set all field to NULL.
@fix T1729
2014-10-18 15:22:30 +02:00
Guillaume Friloux 73a23401ef Fix a bug with using Eio_File handler in main callback.
When using eio_file_stat_ls() (or any other exposing Eio_File *handler),
it will not be possible to use it from the main callback due to eio
freeing data too fast from the thread.

Moved frees from _eio_file_eina_ls_heavy() to eio_async_end() to be
sure that all the calls to main callback are over.
This implied adding the Eina_Iterator from eina_file_stat_ls to
the _Eio_File_Ls structure.
2014-10-09 15:53:01 -04:00
Daniel Juyung Seo 8ba2cc6fe9 doc: fixed typo. 2014-08-18 01:10:39 +09:00
Carsten Haitzler 257e853407 eio - fix possible stringhare del bug in dir chmod
coverity picked this up - CID 1039645. it does indeed look like a real
bug. if order->dirs is empty. for example.
2014-08-14 19:40:54 +09:00
Carsten Haitzler 8da87146b4 formatting fix 2014-08-14 19:39:46 +09:00
Jean-Philippe Andre f4a0c8054f Win64: Fix a bunch of warnings
Fix invalid casts.
Use printf("%z") where appropriate.
Fix unused variables warnings.

Thanks vtorri for the patch.

@fix
2014-05-29 20:02:16 +09:00
Jean-Philippe Andre 0405d8e9a5 Win32: Fix invalid free in eio monitor
You can't just duplicate a string once and free it three times...
2014-05-21 18:03:53 +09:00
Jérémy Zurcher f8c2c57406 do not use EINA_FALSE instead of NULL 2014-05-07 17:45:11 +02:00
Mike Blumenkrantz d03ecb0f3d "whether" has 2x 'h' 2014-04-10 09:27:51 -04:00
Mike Blumenkrantz cc6eed2f86 eio monitors no longer trigger a CRI error during free
@fix
2014-03-21 14:21:04 -04:00
Cedric BAIL 41a9e2149e eio: let's not divide by 0.
fix CID 1193208.
2014-03-20 16:47:25 +09:00
Cedric BAIL 20d95413c3 eio: check if we need to wake up thread when the memory limit is changed. 2014-03-07 16:49:14 +09:00
Cedric BAIL 5915780274 eio: make it possible to limit the amount of memory used by threads.
Eio does need to allocate memory from the thread, transmit it to the
main loop where it is processed and later on freed. If the main loop
is to slow to handle the stream of incoming data, a huge peak of
memory can happen. Some people may want to limit the amount of memory
used at peak time and so this new infrastructure make that possible.

@feature
2014-03-05 14:06:39 +09:00