On 09/06/11 09:50, Michael Schnell wrote:
On 06/08/2011 05:39 PM, Henry Vermaak wrote:
There is no chance for deadlock with main thread calling this from
inside another thread?


You have to protect it with a critical section (if you have more than
one thread calling QueueAsyncCall).

A critical section likely will kill the thread latency, so this should
be avoided

You will corrupt the linked list that QueueAsyncCall uses when you call it from multiple threads, so you _must_ protect it.

You can fire the same main thread event from many threads. the LCL will
queue them and the main thread will handle them one after the other.

It doesn't matter if it's the same event or not, all events are stored in a list by QueueAsyncCall. I don't know why they didn't use a thread-safe queue for this.

Henry

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to