[Lazarus] TFPTimer, Linux

Antonio Fortuny a.fortuny at sitasoftware.lu
Fri Jan 17 15:56:57 CET 2014


> DaemonApp works using threads.
>
> TFPTimer is not usable in threads other than the main thread.
Right. So I made my own Timer based on the TFPTimer. Almost the same 
code except that the Synchronize(@EventProc) disapeared in my code and 
the EventProc is called immediately.
Another little feature is that the high level enable disable sequences 
do not kill the thread: using a TEvent and some lines of cole solves 
this problem whithout requiqring lots of CPU processing time. Even in in 
the worst case the thread will respond within 500 ms
Yes, I know, but what if more than one thread calls the same procedure ?
Well, it is not even protected by a critical section because based on a 
single rule: one Timer one procedure, nothing less nothing more. As a 
consequence I consider that the event procedure is part of the Timer 
object but only connected at runtime.
In a test GUI application, my timer runs perfect in a multi-threaded 
environment (one timer, one thread embedded into an object). My only 
little disappointment is that the timer precision goes from -5 to +5 ms.
But this doesn't bother me as my timers deal with tens (and more 
hundreds) of ms. So I consider that this little error isn't worth 
writing of code to get rid of it. I don't think that the world will stop 
turning around itself because a lack of 5 ms.

Antonio;

>
> Michael.
>
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com






More information about the Lazarus mailing list