[fpc-pascal]Crashes with multithreading
Nico Erfurth
masta at computerman.de
Tue Dec 12 01:02:08 CET 2000
Hi,
>>> Shortly said: Yes. The only solution for this is to use separate
>>> streams in each thread, then it'll work fine.
>>
>> The problem is, nothing in FPC is threadsafe, even the TThread-Class
>> itself (InitThreads/DoneThreads).
>> The FPC-Team really needs to make the RTL and all other classes
>> threadsafe. Its nearly impossible to trace errors in threaded applications.
>
>
> That is not entirely true; the Belgian national phone company collects data
> from their telephone stations using a multi-threaded Win32 application
> written in FPC.
>
> After changing the standard memory manager with the memory manager of
> Windows itself the application runs very stable. It is just a matter
> of programming it right; there are some small parts that require some
> attention (such as file IO) but most of the RTL is thread-safe.
>
> The biggest problems are IOResult and the heap manager.
> Avoiding these two makes FPC apps pretty thread-safe.
>
> Which of course doesn't mean we won't work on thread-safety :-)
>
> Michael.
>
Sorry, i forget to say that i was talking about the Linux-version.
And i think, to provide a class named TThreadList and dont make it
thread-safe is not very common ;)
The next problem in linux-version is the lack of
Mutexes/Critical-Sections, which makes real threaded applications nearly
impossible with FPC/Linux.
regards Nico Erfurth
P.S. Alltogether the FPC-Team is doing a good job, but maybe they
shouldnt "Play around" so much and do some more work to make everything
stable (on all plattforms).
More information about the fpc-pascal
mailing list