information Ecore is a clean and tiny event loop library with many modules to do
lots of convenient things for a programmer, to save time and effort.
It's small and lean, designed to work on embedded systems all the way
to large and powerful multi-cpu workstations. It serialises all system
signals, events etc. into a single event queue, that is easily
processed without needing to worry about concurrency. A properly
written, event-driven program using this kind of programming doesn't
need threads, nor has to worry about concurrency. It turns a program
into a state machine, and makes it very robust and easy to follow.
Ecore gives you other handy primitives, such as timers to tick over
for you and call specified functions at particular times so the
programmer can use this to do things, like animate, or time out on
connections or tasks that take too long etc.
Idle handlers are provided too, as well as calls on entering an idle
state (often a very good time to update the state of the program). All
events that enter the system are passed to specific callback functions
that the program sets up to handle those events. Handling them is
simple and other Ecore modules produce more events on the queue,
coming from other sources such as file descriptors etc.
Ecore also lets you have functions called when file descriptors become
active for reading or writing, allowing for streamlined, non-blocking
IO.
Ecore may provide (if enabled) the following libraries:
* ecore: main loop, signals, and base;
* ecore_con: http/ftp (curl) access;
* ecore_file: easy file manipulation (copy, move, symlink, remove),
monitoring and directory (mkdir, mkdir -p, rm -fr);
* ecore_txt: text charset conversion (iconv wrapper);
* ecore_evas: integrates <pkg>media-libs/evas</pkg> into different
input and output systems, providing easy to use canvas;
* ecore_x, ecore_sdl, ecore_quartz, ecore_directfb, ecore_win32,
ecore_wince, ecore_fb: access to different input/output systems,
mapping them to ecore main loop and events;
* ecore_imf, ecore_imf_evas: input-method framework used to integrate
with different input methods such as virtual keyboards;
* ecore_input, ecore_input_evas: abstraction of input events.
syndicateUTC clock | event counters The last message was received 3.21 hours ago at 10:16 on Feb 13, 2012 1 messages so far today, 1 messages yesterday 1 messages so far this week, 21 messages last week 27 messages so far this month, 77 messages last month 1688 messages since the first one, 2.02 years ago, for an average of 10.49 hours between messages recent messages date | project | content | link |
|---|
| 10:16 today | e | Commit by raster :: r 67874 ecore/src/lib/ecore_ipc/ecore_ipc.c: ( link) From: 윤정현 <jh0506 dot yun at samsung dot com>
Subject: Re: [E-devel] [Patch] ecore_ipc - remove potential risk in
ecore_ipc_shutdown
I found a problem this infinite loop case.
If server is deleted, then ECORE_IPC_EVENT_SERVER_DEL callback
function will be called in client side.
It will happen infinite loop in ecore_ipc_shutdown if
ecore_ipc_shutdown called in this ECORE_IPC_EVENT_SERVER_DEL callback
function.
For example,
server_del_handler =
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _server_del_cb, NULL);
static Eina_Bool
_server_del_cb(void *data, int type, void *event)
{
ecore_ipc_shutdown();
return EINA_TRUE;
}
If server is deleted,
1. _ecore_ipc_event_server_del : svr->event_count++
2. _server_del_cb : ecore_ipc_shutdown called
3. ecore_ipc_shutdown : while (servers) ecore_ipc_server_del(eina_list_data_get(servers))
4. ecore_ipc_server_del : can't eina_list_remove(servers, svr) because event_count != 0
5. infinite loop
I think this while code is very dangerous whether user miss or not.
I modified EINA_LIST_FOREACH_SAFE instead of EINA_LIST_FOREACH refer
to ecore_con.
Please review this patch. | # | | 14:27 yesterday | e | Commit by jihoon :: r 67852 ecore/src/modules/immodules/scim/scim_imcontext.cpp: ( link) scim_immodule: set cursor location even though only client_window is provided without evas (ecore_imf_context_client_canvas_set) | # | | 16:52 Friday | e | Commit by rfonseca :: r 67825 ecore/src/lib/ecore_evas/ecore_evas_cocoa.c: ( link) Ecore_Evas_Cocoa: fix header include name. | # | | 14:02 Friday | e | Commit by devilhorns :: r 67820 ecore/ChangeLog: ( link) Ecore: Add ChangeLog entries for new ecore_evas_wayland function. | # | | 14:01 Friday | e | Commit by devilhorns :: r 67819 ecore/src/lib/ecore_evas/ (2 files): ( link) Ecore_Evas (wayland): Disable logfn's (again) :( Remove extra parens. | # | | 12:41 Friday | e | Commit by devilhorns :: r 67816 ecore/src/lib/ecore_evas/ (5 files): ( link) Ecore_Evas: Add functions for setting wayland mouse pointer (used from elm wayland clients). | # | | 03:28 Friday | e | Commit by jihoon :: r 67801 ecore/ (2 files in 2 dirs): ( link) scim_immmodule: Provide compose, string in key down/up event in case of scim-input-pad. | # | | 11:41 Thursday | e | Commit by devilhorns :: r 67782 ecore/src/lib/ecore_wayland/Ecore_Wayland.h: ( link) Ecore_Wl: Add function in header. | # | | 11:39 Thursday | e | Commit by devilhorns :: r 67781 ecore/src/lib/ecore_wayland/ecore_wl.c: ( link) Ecore_Wl: Also send mouse move before sending mouse down/up. Add some missing Logfn's. Add handler to free the mouse_move event when we're done with it. Add a function to retrieve the 'last mouse button down time' (needed for fixing surface move). | # | | 11:37 Thursday | e | Commit by devilhorns :: r 67780 ecore/src/lib/ecore_evas/ (2 files): ( link) Ecore_Evas (Wayland): Fix getting double mouse events for the wayland engines.
NB: Fixes elementary momentum scrolling. | # | | 07:17 Thursday | e | Commit by jihoon :: r 67779 ecore/src/lib/ecore_imf/ecore_imf_context.c: ( link) ecore_imf_context.c: fix formatting | # | | 04:14 Thursday | e | Commit by discomfitor :: r 67777 ecore/NEWS: ( link) add new curl function to news | # | | 02:22 Thursday | e | Commit by discomfitor :: r 67774 ecore/src/lib/ecore_con/Ecore_Con.h: ( link) @since from @67759 | # | | 00:50 Thursday | e | Commit by discomfitor :: r 67772 ecore/src/lib/ecore_con/ecore_con_url.c: ( link) fix compile without curl from @67759, also add missing magic check SPANK SPANK SPANK RASTER | # | | 20:14 Wednesday | e | Commit by tasn :: r 67768 ecore/src/tests/ecore_test_ecore_x.c: ( link) Ecore tests: Disable ecore_x tests in the meanwhile.
They are currently useless and just cause buildbot to complain. | # | | 16:49 Wednesday | e | Commit by raster :: r 67759 ecore/ (3 files in 2 dirs): ( link) add ecore_con_url_http_version_set() to be able to specify request version | # | | 13:54 Tuesday | e | Commit by jihoon :: r 67728 ecore/ (4 files in 2 dirs): ( link) Support ecore_imf_context_input_panel_show/hide in SCIM module | # | | 13:33 Tuesday | e | Commit by jihoon :: r 67727 ecore/ (2 files in 2 dirs): ( link) ecore_imf_xim: Support ecore_imf_context_input_panel_show/hide in XIM module. | # | | 05:53 Tuesday | e | Commit by jihoon :: r 67723 ecore/src/lib/ecore_imf/Ecore_IMF.h: ( link) Ecore_IMF.h: fix wrong documentation about Ecore_IMF_Preedit_Attr | # | | 13:09 on Feb 06 | e | Commit by jihoon :: r 67711 ecore/ (5 files in 4 dirs): ( link) ecore_imf: Add Ecore_IMF function to set or get the input panel-specific data | # |
|