This gets rid of a lot of temporary variables and cleans the code up again...
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 62342
Sorry for having to pratically rewrite the header, but the other way
to get docs right would be to put lots of @addtogroup around several
chunks of the file, which is ugly too and doesn't organize anything.
I have tested ecore with that and it seems to be okay.
SVN revision: 62307
Thread safety is disabled by default.
Enable it with --enable-thread-safety
Should cover timers, events, animators, idlers and fd handlers.
Tested with Enlightenment and elementary_test.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61851
After a lot of hair pulling, and other debugging, it appears
that to make animation smooth on an embedded device, the
following things should happen in (quick) sequence:
1. update the loop time
2. call timers (which animates and updates the scene graph)
3. call idle enterers (which renders to the display)
4. call fd buf handlers (which flushes xlib stuff)
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61784
This reduces the time between calculating the scene
and rendering it, making scrolling smoother.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61284
Replace with if statements and stub epoll calls, and let the
compiler optimize out the stub code.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61081
Introduce stub timerfd_create and timerfd_settime functions
so ifdefs can be removed.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61080
glib only allows millisecond resolution in g_main_loop.
To avoid this limitation, use timerfd to wake up the main loop.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61079
The g_main_loop was spinning waiting for timers that were
almost ready. The spinning was due to waking up from
the g_main_loop too early, and then having nothing to do.
To solve this, round the timeout up to the nearest millisecond,
so that when the main loop wakes, the timer will definitely be
ready.
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
SVN revision: 61028
Now they can be set even if the list is empty (sorry discomfitor,
removing your optimization and making it O(n) again, back from O(0)).
Also notice that due to the already existing check, if a prepare
callback was already set to a fd handler, it can't be changed, so I
added that to the docs.
SVN revision: 60765
Use isfinite() if available, otherwise use finite() on
compilers != vc++, otherwise use _finite()
and a bit of formatting too (i know, it's bad)
SVN revision: 58566
Subject: [E-devel] [PATCH] ecore main loop "fd_handlers_to_call" list optimization
Date: Thu, 02 Dec 2010 15:22:13 +0900
Hi All,
Rather than using malloc'ed list entries in the mail loop, use a single linked in-place list.
This avoid lots of mallocs and frees as the main loop iterates.
thanks,
Mike
SVN revision: 56368