[fpc-pascal]Crashes with multithreading
Michael Van Canneyt
michael.vancanneyt at wisa.be
Tue Dec 12 09:12:23 CET 2000
On Tue, 12 Dec 2000, Nico Erfurth wrote:
> >>> 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.
We are aware of this, and we're looking at a cross-platform solution.
> 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).
We will make it more stable,
but it must stay fun for us as well, so the 'playing around' is part
of the deal :-)
More information about the fpc-pascal