[fpc-devel] ConsoleIO and flushing buffered output

Christo Crause christo.crause at gmail.com
Mon Jun 8 22:22:18 CEST 2020


Thank you Michael and Jonas for your help and suggestions.  I think I ended
up merging your suggestions, which does work for my corner case.  If anyone
is interested this change can be viewed here:
https://github.com/ccrause/freepascal/commit/b28ab72ed07f11677493d5d0e37ee451d2313323

I must admit that I was thoroughly confused by the apparent lack of
semantic difference in use between InOutFunc and FlushFunc of TextRec
structure.

Best wishes,
Christo

On Mon, Jun 8, 2020 at 9:58 PM Jonas Maebe <jonas at freepascal.org> wrote:

> On 07/06/2020 19:16, Christo Crause via fpc-devel wrote:
> > I want to change the _haltproc for freertos ESP controllers to use
> > normal write/writeln functionality to send information to standard
> > output.  On these targets the output is typically buffered serial
> > provided by the OS.  Text output written just prior to setting the cpu
> > to sleep doesn't get sent, hence a flush is needed to complete data
> > transmission before putting the cpu to sleep.  Looking at
> > consoleio.OpenIO there doesn't seem to be a convenient way to provide a
> > flush helper function. Also the RTL Flush procedure calls InOutFunc and
> > not FlushFunc.
> >
> > What is the proper way to hook a flush helper function into the existing
> > RTL infrastructure?
>
> The flushfunc is called from fpc_write_end and fpc_writeln_end. Those
> helpers are automatically called after all of the individual write
> operations from a write(ln) statement have been processed. So if you
> implement/assign flushfunc and make it call your OS flush function, it
> should work fine.
>
>
> Jonas
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20200608/eec64581/attachment.htm>


More information about the fpc-devel mailing list