[Lazarus] TThread.WaitFor blocks the main event loop under Linux
Michael Schnell
mschnell at lumino.de
Mon Oct 11 12:07:22 CEST 2010
On 10/11/2010 11:39 AM, Michael Van Canneyt wrote:
>
>
> It would be good if you could provide a patch, instead of continuously
> restating your desire of this feature.
I'm not stating my desire of this (set of) features). I'm just
confirming that others stating this desire are not alone.
At the moment I am not actively working with Lazarus at all (just
evaluating chances for future projects). So actively working on
improving it would just be a charity project and unfortunately I don't
have the time for this right now. (both facts can change any day in the
future)
In fact, some months ago (when I had more spare time) I did invest some
two weeks of work on implementing MSE's event queue mechanism in
Lazarus, but I found the correct way to implement this would be to do it
in the FPC RTL (to allow for an event queue independent of the GUI) and
to modify the Lazarus LCL to implement it's event queue based on this
(merging the GUI events similar to how it right now it's done in all
Widget Types but "Windows"). But i feel providing interdepending patches
for both FPC and Lazarus is fay beyond my political power.
> You manage to bring it up quite
> often. That means you think about it often, so why not try an
> implementation
> while you're at it ?
In fact I did (see above). There are some discussions on the here in the
back log and in the MSE discussion group.
>
> If it wasn't implemented till now, it's because none of the core
> developers sees the need for it, and by the looks of it, this will not
> change in the
> near future.
In fact 90 % of the discussion threads here (and in some more groups)
brining up this topic have not been started by myself. So I feel that
there seems to be a decent "public" request.
> You can change this by providing a patch.
Unfortunately not (see above)
> It does not need to
> be perfect, but it should provide a working - cross-platform - start
> of an implementation.
Of course the cross-Platform and with that GUI independence is the core
of a decent patch.
> Then we can see where we can fit it in. You can start by
> creating an descendent of TCustomApplication or so:
> TCustomEventApplication.
>
Thanks for remembering my dream of providing an event queue even for
worker Threads :) AFAIK, MSE in fact can do this. As I did not see any
need (but that of my brain wanting perfect structuring) on that, this
would be just a nice add-on, that supposedly would not need much
additional effort by doing a thread-save implementation of
TCustomEventApplication. :).
But here again, the FPC implementation is involved as "Procedure ...
Message" would need to be implemented ion top of the event queue and in
fact the Windowism of the Message type should be dropped in favor of a
decent Object based Event Type (such as provided by MSE).
-Michael
More information about the Lazarus
mailing list