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