[fpc-devel] ConsoleIO and flushing buffered output
Jonas Maebe
jonas at freepascal.org
Mon Jun 8 21:58:39 CEST 2020
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
More information about the fpc-devel
mailing list