In our previous episode, Anton Kavalenka said:
> > On 25 Nov 2010, at 10:52, Anton Kavalenka wrote:
> >
> >> Due to incompatibility of RTL between FPC and Delphi my capturing 
> >> tricks not work.
> >> BTW what the real reason to make these files as threadvar?
> >
> > To prevent multiple threads writing to stdin/stdout/sterr at the same 
> > time from corrupting each other's data (all of these text files use an 
> > internal buffer, even when the output is immediately flushed afterwards).
> 
> lock_output();
> try
>    // do something nasty with the buffer
> finally
>     flush(output);
>    unlock_output();
> end;
> 
> There is NO other runtimes on this planet instead FPC RTL which take 
> care of per-thread buffer of output.
> It is programmers duty to lock/flush buffer in multithreaded environments.

Such solutions are fine for slow apps, but in a fast pace, app, this means
that the logging with its locks has a significant impact on the behaviour of
the application.

And IMHO the RTL should be workable for all kinds of apps.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to