[fpc-pascal] TThread.FreeOnTerminate
Michael Van Canneyt
michael at freepascal.org
Fri Dec 14 11:22:55 CET 2018
On Fri, 14 Dec 2018, Sven Barth via fpc-pascal wrote:
> Am Fr., 14. Dez. 2018, 10:31 hat Michael Van Canneyt <michael at freepascal.org>
> geschrieben:
>
>>
>>
>> On Fri, 14 Dec 2018, el es wrote:
>>
>>> On 13/12/2018 22:23, Michael Van Canneyt wrote:
>>>>
>>>>
>>>> On Thu, 13 Dec 2018, Martin Frb wrote:
>>>>
>>>>>
>>>>> ---- Besides, the documentation does not say that FreeOnTerminate
>>>>> is limited to be used in the thread construction. Especially since
>>>>> its effect is not due until "terminate"
>>>>
>>>> For me this is a given.
>>>>
>>>> Almost by definition, changing anything in a thread after the
>>>> constructor has returned, is dangerous. You should set up everything
>>>> in the constructor.
>>>
>>>
>>> Then this TThread.FreeOnTerminate property should not really be public,
>>> if it's only to be used in 'private' context of the constructor?
>>
>> I think FreeOnTerminate should not even exist. IMO it should simply be
>> 'True'.
>>
>
> I disagree, because then you could never do a WaitFor(). Or provide the
> thread with new data through a method (that fills a queue that the thread
> processes) without risking an access violation.
This can be solved with the OnTerminate event. As long as you didn't get
that, the thread is still alive.
Michael.
More information about the fpc-pascal
mailing list