On 02/19/2012 11:49 AM, Zoran Bošnjak wrote:
> Hello all,
> I was astonished to find out that looping call period depends on the system 
> time by default. The periodic tick can even stall for a long time, if the 
> system time jumps backwards during program execution. It turned out that this 
> is in fact a python problem (not providing a monotonic time, at least not for 
> posix).
>
> I urgently need accurate periodic call in my program and I've found the 
> solution below that seems to be working. I kindly ask you for your comments:
> - Is this monotonic_time implementation OK from python perspective?
I didn't read it in detail, but it seems vaguely plausible; overriding 
reactor.seconds is the thing to do.
> - Is monkey patch to the reactor OK or is there any other solution more 
> appropriate in this case (I do not want to patch each looping call, but once 
> in the application)?
That's probably the easiest in this situation.
> - Does this patch have any negative influence to the rest of the reactor?
Everything is *supposed* to use reactor.seconds - grep for time.time and 
see if it shows up anywhere in twisted.internet.
> - How would you implement a periodic function call in twisted application (as 
> accurate as possible)?
LoopingCall if you had this patch.
> - Any chance to see something implemented inside twisted and/or python, so 
> that applications don't need this kind of tricks?
>
See http://twistedmatrix.com/trac/ticket/2424 - using ctypes is probably 
easier than the C extension the included patch provides.

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to