[fpc-pascal] writeln: FPC runtime race conditions in external C threads
Alexander Grau
alex at grauonline.de
Tue Jul 13 14:08:49 CEST 2010
Am 12.07.2010 um 22:58 schrieb Jonas Maebe:
> Alexander Grau wrote on Mon, 12 Jul 2010:
>
>> Am 12.07.2010 um 22:31 schrieb Jonas Maebe:
>>
>>> I forgot to mention: before this works, you have to create at
>>> least one thread using the FPC RTL in order to initialise the
>>> threading subsystem. It can be terminated/freed immediately, see
>>> the test program that was committed together with the fix for an
>>> example.
>>
>> That did the trick! Seems to work - I'm really curious how this
>> works, since I assume there's probably no control over how the
>> external C thread is created and so no chance to initialize
>> something for the FPC runtime ...
>
> The FPC runtime support for such a thread is initialised the first
> time you access a threadvar from that thread. And there's also a way
> to make libpthread automatically call a "destructor" routine when
> such a thread finishes (that's what I discovered today, and which
> was the missing piece of the puzzle).
>
>
> Jonas
I think that's excellent - how about the other (non-Unix) OS' s FPC
supports, I assume they have the same problem with externally created
threads? (e.g. has there already been found a similar solution for
Win32 ?)
More information about the fpc-pascal
mailing list