[Lazarus] nonlcl basic issue: is codetools LCL dependent?
Mattias Gaertner
nc-gaertnma at netcologne.de
Fri Jun 27 11:35:43 CEST 2014
On Fri, 27 Jun 2014 10:35:28 +0200
Michael Schnell <mschnell at lumino.de> wrote:
>[...]
> > So? Program a queue.
>
> IMHO this is not appropriate.
>
> There already is a queue in the RTL that needs to be handled, as same is
> fed by TThread.Synchonize (and TThread.Queue) user accessible functions.
> Hence an additional queue would need merging the queue outputs and
> handling the waiting and waking for both Queues simultaneously. This
> (waiting and waking regarding the additional queue) needs arch depending
> code (as done in the GUI based Widget Types).
That's not arch dependent, but library dependent.
In case of nogui there is no library, so you have the full control.
> But the NoGUI Widget Type
> is done for small embedded projects.
Not quiet. The nogui widgettype is for LCL applications running without
GUI. This can be a daemon or console tool.
Because the LCLBase is not optimized for smart linking it pulls in a lot
of stuff and it is not good for small embedded projects.
> here arch-independence, low latency and low processor demand is critical.
Have you actual numbers of the overhead that you fear so much?
> >> They implement a second queue besides the one the RTL implements for
> >> TThread.
> > Probably they have several.
>
> IMHO it is not a very nice concept to merge queue outputs. This of
> course has historical reasons with the existing GUI based widgets sets.
>
> IMHO it would be better top merge the queue inputs and hence waiting and
> waking is central.
>
> (A concept to do this would be a central Event Queue implementation in
> the RTL that always is used by the LCL Widget sets. Of course with the
> Windows widget set this technically can't be done, as you need to use
> the OS Message Queue.
Same for the other widgetsets. Except for nogui.
Mattias
More information about the Lazarus
mailing list