[Lazarus] Did anyone uses FieldsEditor with persistent TFields ?

Marcelo B de Paula marcbp at terra.com.br
Tue Oct 12 16:37:08 CEST 2010



On Tue, 12 Oct 2010, Michael Schnell wrote:

> On 10/12/2010 11:43 AM, Michael Van Canneyt wrote:
>> 
>> 
>> 
>> There must be another call as well, I assume Synchronize(), in the thread
>> that you are waiting on.
>
> Why should Synchronize deadlock a Waitfor ? I understand that in Waitfor 
> other main thread events (e.g. Gui generated ones) should run.

There is not a single line of documentation that justifies this expectation.

> Synchronize 
> stalls the thread until the appropriate main thread event handler (given as a 
> parameter with Sychronize) has been run. If MainThread Events do run in 
> WaitFor there is no need for an (additional) chance for a  deadlock.

Events bypass normal threading mechanisms, in particular synchronize(). 
You get away with it on Windows because of this.

Now, before you discuss: I understand that the 'expected behaviour' is
desirable, but I just want to argue that your expectations are not backed 
up by the API documentation, and that, therefor, you are responsible for
creating deadlock.

See also my reply to Graeme.

Michael.




More information about the Lazarus mailing list