On 01/07/2014 03:11 PM, Michael Van Canneyt wrote:
WakeMainThread may or may not be implemented. You should not count on that.

Right you are.

If you want to have "decent event oriented Pascal programming" (i.e. by using TThread.Synchronize and/or TThread.Queue for handling the issues the OP requested such as doing blocking I/O in Threads), you need to do an environment (which can be seen as a "WidgetType" in Lazarus speak) that calls CheckSynchronize in the main thread and that implements WakeMainThread to wake the main thread (idle while waiting for a timeout in CheckSynchronize) by means of the underlying OS.

TTimer can be implemented on top of that as a Graeme "ThreadTimer" or by other means (I intend to provide a very rough TTimer variant based on the CheckSynchronize timeout).

-Michael

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to