[Lazarus] Multi-threading support in IDE

Marco van de Voort marcov at stack.nl
Sat Aug 15 17:45:05 CEST 2009


On Fri, Aug 14, 2009 at 04:36:58PM +0200, Mattias Gaertner wrote:
> > > The are good reasons to not put the compiler into the same process:
> > > -a process can be aborted/killed easily
> > > -various compiler versions
> > > -compiler crashes do not effect the IDE
> > 
> > Disadvantages:
> > - compiler versions might not match (entirely)
> 
> And?

Requiring the compiler used to compile lazarus, and the one to 
 
> > - Multiple processes that can only be made sequential over I/O.
> > Potential for race conditions. 
> 
> Can you give an example?

Because you have wire time and context switches, and a binary that can
generate evens, you have nearly an infinitely big amount of possibilities of
the state machine that manages events from lazarus (e.g. set breakpoint) and
gdb (break point met), risking an undefined state.

In an library, when you synchronously call gdb, gdb can't callback you. 

> > - (some) platforms might not support multiple processes at all, or
> > miss the relevant 100% primitives. (also e.g. faulty pipe
> > implementations)
> 
> Are we still talking about the IDE?

About both IDEs yes, but I agree this is the weakest of the three, and a bit
outdated. (Dos, win95 etc)




More information about the Lazarus mailing list