Commit 82ea26e2 authored by Simon Marlow's avatar Simon Marlow

add hFlushAll, flushes both read and write buffers

parent 7975b3a5
......@@ -23,7 +23,7 @@ module GHC.IO.Handle (
hFileSize, hSetFileSize, hIsEOF, hLookAhead,
hSetBuffering, hSetBinaryMode, hSetEncoding,
hFlush, hDuplicate, hDuplicateTo,
hFlush, hFlushAll, hDuplicate, hDuplicateTo,
hClose, hClose_help,
......@@ -282,6 +282,26 @@ hSetEncoding hdl encoding = do
hFlush :: Handle -> IO ()
hFlush handle = wantWritableHandle "hFlush" handle flushWriteBuffer
-- | The action 'hFlushAll' @hdl@ flushes all buffered data in @hdl@,
-- including any buffered read data. Buffered read data is flushed
-- by seeking the file position back to the point before the bufferred
-- data was read, and hence only works if @hdl@ is seekable (see
-- 'hIsSeekable').
--
-- This operation may fail with:
--
-- * 'isFullError' if the device is full;
--
-- * 'isPermissionError' if a system resource limit would be exceeded.
-- It is unspecified whether the characters in the buffer are discarded
-- or retained under these circumstances;
--
-- * 'isIllegalOperation' if @hdl@ has buffered read data, and is not
-- seekable.
hFlushAll :: Handle -> IO ()
hFlushAll handle = withHandle_ "hFlushAll" handle flushBuffer
-- -----------------------------------------------------------------------------
-- Repositioning Handles
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment