[DUG] Firemonkey threading

Jan Bakuwel jan.bakuwel at omiha.com
Thu Nov 23 14:41:12 NZDT 2017


Hi all,

I'm finishing a Firemonkey application built with XE5 targeting Windows
and MacOS.

The application is multithreaded and works a charm on Windows.

On MacOS however, the GUI becomes unresponsive (ie. clicking on buttons
doesn't do anything) once the threads are getting underway (doing lots
of network traffic). GUI updates (by the threads) are taking place
though (ie. the GUI is not completely frozen, it just doesn't accept any
keyboard/mouse input).

After learning this is likely caused by a bug in the XE5 RTL, I've added
a timer that calls System.Classes.CheckSynchronize in the main thread
frequently if the application runs on MacOS.
I've even set up (syslog) logging, so I can confirm/see that
System.Classes.CheckSynchronize indeed gets called frequently.

Yet, the GUI only becomes responsive again once the threads terminate.

I'm a bit crossed-eyed from looking at this; is there anyone out there
with a suggestion (other than upgrade to Tokyo ;-) ).

thanks,
Jan







More information about the Delphi mailing list