[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