[Lazarus] Even more radical suggestion regarding Event Queues
Michael Schnell
mschnell at lumino.de
Fri Jan 21 14:12:31 CET 2011
On 01/21/2011 01:49 PM, Henry Vermaak wrote:
>
> Yes. Look at TGtk2WidgetSet.InitSynchronizeSupport in
> gtk2widgetset.inc. It creates a pipe, which gets watched by the main
> loop. PrepareSynchronize then just writes something to the pipe,
> which wakes up the main func via the watched pipe. Or so the theory
> goes. I haven't really looked into it more closely.
OK, once again, IMHO, crafted a little bit short sighted. The init for
Synchronize should not create it's own pope (AKA "Event Queue"), but all
similar functionalities (i.e. TApplication.QueueAsyncCall,
TThread.Synchronize, SendMessage, SendThreadMessage, TThread.Queue)
should use a common queue (and in fact be based on the most flexible
function (being QueuAsyncCall, providing a pointer as a parameter to the
callee). This would result in more manageable code, Especially, if same
is moved out of the Widget Type code and provided for all Widget Types
to use, if they want to.
-Michael
More information about the Lazarus
mailing list