[Lazarus] Threads and Libraries (dll and so)

Reimar Grabowski reimgrab at web.de
Thu Feb 6 13:21:04 CET 2014


On Thu, 06 Feb 2014 12:19:22 +0100
Michael Schnell <mschnell at lumino.de> wrote:

> On 02/06/2014 11:54 AM, Reimar Grabowski wrote:
> >
> > You see that as shortcomings. Most others (even widgetset developers) see thread-safe GUIs as nonsense without real benefit, else they would be available.
> > I think we can agreee to disagree.
> This is a funny opinion indeed.
> 
>   - we did a project in a standard (single-threaded GUI) way
>   - with enhanced demand of the customers this did not work decently 
> (GUI getting sluggish)
>   - we found that using a multi-threaded GUI would solve the problem
And this is a funny way to solve performance problems.
Have you just experimented with multi-threaded GUIs (which one did you use as none supports this)?
Or is your way of choosing multiple apps to do the work your proof that multi is faster?
What is the real bottleneck of your application?
How did you identify this bottleneck?
How did you arrive at the conclusion that multi would solve your problem?

>   - I agree that this is only relevant in a rather small range of 
> applications.
So a gain for a small amount of apps but a lot of work to support the solution.
Currently there are other options but you do not want to use them. Your choice.

> But this does not deny that it is a shortcoming 
> nonetheless, as solving it would not impose any disadvantages for anyone.
Multi-threaded is always more work than single (more complex, different errors that appear only in multi-threaded apps, harder to debug).
It is a disadvatage for at least the widgetset developers (more work, more complex code). The Lazarus developers (same reason). Maybe even for the users of the widgetset.
How about you take fpGUI (or GTK or QT if your skills allow that) and make it thread-safe? The code is there for you.
You sound like for example removing the check in QT if a widget is updated from the main thread is enough to make it thread safe, it most likely is not.
Who does the work to make it thread safe?
If it is so beneficial to your work and so easy to achieve without disadvantages, why don't you do the work?

R.




More information about the Lazarus mailing list