efl/src/lib
Carsten Haitzler bd2f189d4c ecore_con - move libproxy to a slave binary with stdin/out msging
so here's the ugly problem. libproxy. yes. we've discussed memory
usage (e.g. it may have to execute javascript and pull in lots of deps
etc.) but we dlopene'd on the fly. ok... but this didn't solve another
issue i hit:

libproxy was causing enlightenment to abort(). some internal bit of
libproxy was raising a c++ exception. this wasn't caught. this causes
an abort(). takes down your entire desktop. FANTASTIC. this is bad. i
wouldnt' expect a library we depend on to be THIS anti-social but
libproxy seemingly is. it SHOULd catch its error sand just propagate
back to us so we can handle gracefully.

there reall is no way around this - isolate libproxy. it's even worse
that libproxy can load arbitrary modules that come from anywhere sho
who knows what issues this can cause. isolation is the best solution i
can think of.

so this makes an elf+net_proxy_helper we spawn the first time we need
a proxy lookup. we re-use that binary again and again until it exits
(it should exit after 10 seconds of being idle with no requests coming
in/pending). it'll respawn again later if needed. this involves now
the efl net threads having to marshall back to mainloop to do the
spawn and to write to the proxy process (reading is done by async exe
data events and the data is passed down a thread queue to the waitng
efl net thread). if the exe dies with pending requests unanswered then
it's respawned again and the req's are re-sent to it... just in case.
it has a limit on how often it'll respawn quickly.

this seems to work in my limited testing. this ALSO now isolates
memory usage of libproxy to another slave process AND this process
will die taking its memory with it once it's been idle for long
enough. that;s also another good solution to keeping libproxy impact
at bay.
2017-01-09 15:29:33 +09:00
..
ecore eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
ecore_audio ecore audio: use new property impl syntax 2016-12-27 17:00:05 +01:00
ecore_avahi
ecore_buffer doxygen: remove reference warnings. 2016-12-20 16:39:30 -08:00
ecore_cocoa ecore_cocoa: fix handling of some keys 2016-10-30 16:46:30 +01:00
ecore_con ecore_con - move libproxy to a slave binary with stdin/out msging 2017-01-09 15:29:33 +09:00
ecore_drm
ecore_drm2 ecore_drm2 - work with broken kernels that EBUSY on drm page flip 2017-01-07 13:23:02 +09:00
ecore_evas eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
ecore_fb eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
ecore_file Revert "ecore_file: use win api for delete folder" 2016-11-30 14:03:00 +02:00
ecore_imf elm_entry: Add voice input panel layout 2016-10-31 19:10:53 +09:00
ecore_imf_evas
ecore_input Ecore_Input: Add Efl_Input_Device in Ecore_Events structs. 2016-09-26 22:06:59 -03:00
ecore_input_evas eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
ecore_ipc ecore_con/ecore_ipc: flush should wait for connection. 2016-12-19 13:03:33 -02:00
ecore_psl1ght
ecore_sdl
ecore_wayland ecore_wayland: fix over writing file descriptor bug for reading 2016-11-18 19:53:15 +09:00
ecore_win32 Ecore_win32: do not handle WM_SYSKEY* events. 2016-12-20 08:35:32 +02:00
ecore_wl2 ecore_wl2: Fix accidental re-use of tmp var 2017-01-05 13:40:31 -06:00
ecore_x efl window stacks - implement pop to for x11 in the portable way 2016-12-22 15:17:43 +09:00
ector eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
edje eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
eet openssl 1.1 build break fixes 2017-01-04 17:47:38 +09:00
eeze eeze: remove trailing whitespaces 2016-09-07 09:48:39 +05:30
efl eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
efreet eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
eina eina: move to use memcmp and rename eina_{flt,dbl}eq to eina_{flt,dbl}_exact. 2017-01-06 15:58:46 -08:00
eio eio, edje: use new property impl syntax 2016-12-27 17:47:00 +01:00
eldbus eldbus: use new property impl syntax 2016-12-27 16:39:52 +01:00
elementary eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
elocation docs: Fix access to main elocation page from front page 2015-05-07 11:15:12 +02:00
elput elput: Fix resource leak 2016-12-19 09:49:36 -05:00
elua elua: load modules from local dirs first 2016-08-08 14:38:39 +01:00
embryo eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
emile openssl 1.1 build break fixes 2017-01-04 17:47:38 +09:00
emotion eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
eo eo_debug: print tracebacks for more errors. 2016-12-20 10:18:31 -02:00
eolian eolian: stricter implement/constructor verification 2017-01-05 16:00:14 +01:00
eolian_cxx eolian-cxx: Add std::move to member variable initialization 2016-12-20 16:06:58 -03:00
ephysics evas: Move map to a separate mixin 2016-06-29 09:12:26 +09:00
escape
ethumb eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
ethumb_client ethumb: tell the user if the connection to the deamon failed 2016-07-13 17:52:46 +02:00
evas eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
evil autotools: since it has been broken for some times and nobody noticed, let's remove per directory support. 2016-08-01 13:36:47 -07:00
.gitignore