[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