[fpc-pascal] TThread.Suspend

Michael Van Canneyt michael at freepascal.org
Thu Jan 30 14:40:39 CET 2014



On Thu, 30 Jan 2014, Mark Morgan Lloyd wrote:

> Marco van de Voort wrote:
>> In our previous episode, Mark Morgan Lloyd said:
>>>> Both yes, because anything but that was never fully supported with Resume 
>>>> in
>>>> the first place.
>>>> 
>>>>> Second question: now that Suspend is deprecated, what should a thread do 
>>>>> if it wants to stop processing pending a subsequent resume?
>>>> Add a Tevent, and block on it. IOW nothing built-in.
>>> OK, noted. But as a stylistic point it seems to me that this very basic 
>>> functionality has been ripped out of the RTL (Classes.TThread) and moved 
>>> into the FCL (Syncobjs.TEvent) leaving no adequate substitute.
>> 
>> Classes was originally FCL too. That kind of thinking of RTL vs FCL based 
>> on
>> functional division is outdated. Now it is mostly just compiler
>> bootstrapping. (even more so since the recent creation of rtl-* packages)
>
> Although it's still significant when it comes to documentation, particularly 
> when starting at e.g. http://lazarus-ccr.sourceforge.net/docs/
>
> I'm trying to dig through things... if I recall correctly it's not possible 
> to do something like  {$if defined(TThread.Resume) }  but I must admit that 
> I'm having a hard time finding  defined()  at all, I think 
> http://www.freepascal.org/docs-html/prog/progsu29.html#x35-340001.1.29 needs 
> a link to 
> http://www.freepascal.org/docs-html/prog/progsu125.html#x137-1380002.4.1 or 
> at least needs the name if the section it's pointing at tightened up.

A good remark.

I added such a link. Will be in 2.6.4.

Michael.



More information about the fpc-pascal mailing list