[Lazarus] Testing 0.9.29: Main Thread Events

Michael Schnell mschnell at lumino.de
Thu Feb 17 11:43:37 CET 2011


On 02/16/2011 09:01 PM, Vincent Snijders wrote:
>
> For people used to release candidates, consider the current 0.9.29
> snapshots to be 0.9.30RC2.
>
> Happy testing.

Some testing results regarding MainThreadEvents.

Done with Lazarus version 0.9.31 revision 29587, fpGUI revision as of 
20110217, and FPC 2.5.1:


                              GTK2               GTK                 fpGUI
              =======            =======             =======
TThread.WaitFor              OK                 OK                  OK

 From a Thread
   TThread.Synchronize        (1)                OK                  OK
   TThread.Queue              ---------------------not 
implemented-----------
   PostMessage                OK                 (3)                 no 
function
   PostThreadMessage          ---------------------not 
implemented-----------
   SendMessage                (2)                (4)                no 
function
   Dispatch                   (2)                (4)                (5)
   QueueAsyncCall             (1)                (3)                (6)

 From a Timer
TThread.Synchronize        ---------------------impossible----------------
   TThread.Queue              ---------------------not 
implemented-----------
   PostMessage                OK                   OK                no 
function
   PostThreadMessage          ---------------------not 
implemented-----------
   SendMessage                OK                   OK                no 
function
   Dispatch                   OK                   OK                OK
   QueueAsyncCall             OK                   OK                (7)


(1) The scheduled Events only are handled in the Main Thread when GUI 
Events for the Form are handled (e.g. always, when a memo that gets the 
test output has the focus, which makes it seem to work correctly)

(2)  Forbidden, but eventually works like TThread.Synchronize

(3)  Similar to (1), but does not even seem to work if the memo has the 
focus

(4)  Forbidden; Application Crashes

(5)  Forbidden; works for some time, then The application closes without 
error message

(6)  The scheduled Events only are handled in the Main Thread when the 
worker thread is terminated

(7) Very funny: In this test environment, the scheduled Events only are 
handled in the Main Thread when e.g a completely unrelated worker thread 
is created and then terminated


Hope this helps,

-Michael




More information about the Lazarus mailing list