On Tue, 21 Sep 2010, Gustavo Sverzut Barbieri wrote:
> Hello all, > > As we all know ecore uses gettimeofday() to retrieve the time and > schedule timeouts. Our own code in ecore and even elementary just use > relative times, and we often have to resort to hacks to detect when > timezone changes or user sets time. > > In order to solve this problem there is an API called clock_gettime() > that may receive a parameter CLOCK_MONOTONIC. The origin is not > guaranteed (often it is implemented as 0 = machine boot), but it does > guarantee time does not go back. > > Raster says that ecore_time_get() and ecore_loop_time_get() are not > supposed to return the unix epoch, although the implementation and > thus the documentation said so... that lead people to use it as such > (a quick grep in svn shows people often save this value to know > timestamps... which is quite wrong). > > So we can fix it in 3 ways: > > 1. apply the attached patch that turns > ecore_time_get()/ecore_loop_time_get() into monotonic, change > occurrences of ecore_time_get()/ecore_loop_time_get() to be > ecore_unix_time_get() (actually in some places they must be changed to > something else, like gmtime or localtime) > > 2. create a new patch that introduces ecore_monotonic_time_get() > and uses that from inside ecore_main.c > > 3. change the attached patch to at start do a gettimeofday() and > register the time difference, then always consider that difference. it > would be monotonic but with Epoch as reference... this may be > extremely buggy if the system has a bad battery and clock is just set > by ntp after your efl program is running. > > 1 is more correct, but maybe too close to 1.0 release to get it, so > although I did the patch I may introduce the way I said in 2... > > comments? suggestions? and for Windows ? Vincent ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel