[Lazarus] nonlcl basic issue: is codetools LCL dependent?
Michael Schnell
mschnell at lumino.de
Wed Jun 25 16:53:36 CEST 2014
On 06/25/2014 04:04 PM, Mattias Gaertner wrote:
>
>> Instead it then uses TThread.GetTickCount64. Do you think that is
>> appropriate at this point in time ?
> Yes.
I just checked and found that with fpc vertsion 2.6.0-9, which is the
version I installed as a Debian Package for X86-64) TThread does not have
CurrentThread,
Queue, and
GetTickCount64
I do call thees three in my "interface" unit.
(To do a test with 64 Bit, I hence would need to install and compile the
svn version.)
> What are the differences between your widgetset and the nogui widgetset?
I'll take a look.
> How do you support multiple timer?
I create a pool of timers. (My TTimer class has a class variable holding
all Timers created in a dynamic array.)
When a timer tick occurs (or when CheckSynchronize returns because of a
queued Event), the tick count for the next tick of any timer in the pool
is calculated. The resulting period is used as the Timeout parameter for
CheckSynchronize().
> What scheduler do you use?
In fact none. CheckSynchronize performs the waiting in the main thread
and any time base that can read a current tick count (arbitrary
frequency) can be used as a timebase.
This Seems like requiring the lowest possible overhead (you know that
this is a goal of mine).
To reduce the overhead even more, my TTimer has a class property
"Granularity" that allows to define the accuracy of the Timers (in
msecs) so that with lower necessary accuracy, events of multiple TTimers
will occur at the same time with no system calls in between.
-Michael
More information about the Lazarus
mailing list