efl/src/lib/eio
Mike Blumenkrantz 42704eccc7 eio/poll: avoid ever dereferencing the backend's parent in a thread
Summary:
when a monitor is destroyed, it unconditionally and immediately deletes
the monitor struct. this means that as soon as the monitor is dead, the
backend must never access the parent pointer again if its lifetime exceeds
the lifetime of the monitor (such as in threads)

the only member of the monitor data used by the fallback monitor is the
monitor path, so we can just copy it to the fallback data to avoid ever
needing to dereference this pointer

fixes reliability issues with efl sentry unit tests

@fix

Depends on D9708

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9709
2019-08-23 13:38:33 -04:00
..
Eio.h efl: remove EFL_EO_API_SUPPORT macro 2019-03-18 12:13:59 +01:00
Eio.hh cxx: Modify how to generate C++ headers and allow cyclic dependencies 2017-01-18 22:47:04 -02:00
Eio_Eo.h efl_model : rename all efl_model based classes. 2019-01-31 14:59:37 +09:00
Eio_Legacy.h Eio: enable eio_file_chown if chown is available on the platform 2019-07-28 09:38:26 +01:00
efl_io_manager.c eio: work around the lack of integration between Ecore_Thread and Eina_Future. 2019-03-27 15:03:33 -07:00
efl_io_manager.eo docs: Fix common misspellings in EO files 2019-04-02 11:32:05 +02:00
efl_io_model.c efl/io: fix race condition with child model deletion 2019-08-23 13:38:32 -04:00
efl_io_model.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_io_model_private.h eio: remove unecessary use of weak reference. 2019-03-27 15:03:26 -07:00
eio_dir.c include evil_private.h in last files, and disable symbolic links on Windows in a couple of files 2019-05-22 07:59:05 -04:00
eio_eet.c
eio_file.c eio_file: fix some indentation. 2018-02-27 17:33:47 +00:00
eio_inline_helper.x Eio: avoid symbolic link on Windows 2019-05-21 13:35:01 -04:00
eio_main.c eo: use efl_provider_{un,}register infrastructure instead of Efl_Loop one. 2019-07-17 21:57:57 +02:00
eio_map.c
eio_monitor.c getenv - reduce continually calling getenv for the same vars do once 2019-08-08 23:57:02 +01:00
eio_monitor_cocoa.c
eio_monitor_inotify.c eio: make inotify monitors fork-safe 2018-02-02 16:59:44 -05:00
eio_monitor_kevent.c efreetd: BSD optimizations. 2017-05-10 12:26:08 -07:00
eio_monitor_poll.c eio/poll: avoid ever dereferencing the backend's parent in a thread 2019-08-23 13:38:33 -04:00
eio_monitor_win32.c remove Evil.h when not necessary, include evil_private.h when necessary 2019-05-20 09:10:00 -04:00
eio_private.h make mman.h private 2019-08-19 09:55:13 -04:00
eio_sentry.c Remove individual class BETA guards 2019-02-13 18:09:17 +01:00
eio_sentry.eo eolian: enable checking of beta/stable contexts in all classes 2019-03-11 13:42:29 +01:00
eio_sentry_private.h eio/sentry: destroy event handlers when deleting sentry 2018-08-17 22:19:32 +02:00
eio_single.c Eio: enable eio_file_chown if chown is available on the platform 2019-07-28 09:38:26 +01:00
eio_xattr.c
meson.build build: add a option to disable eo file installation 2019-03-14 12:44:00 -04:00