base: Mention openFile throwing does-not-exist-errors on FIFOs
authorBen Gamari <bgamari.foss@gmail.com>
Thu, 22 Nov 2018 16:33:39 +0000 (11:33 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 22 Nov 2018 22:02:45 +0000 (17:02 -0500)
As discussed in #15715, the POSIX specification specifies that
attempting to open a FIFO in write-only mode when the FIFO has no
readers will fail with -ENOENT.

[skip ci]

Test Plan: Read it

Reviewers: hvr

Subscribers: rwbarton, carter

GHC Trac Issues: #15715

Differential Revision: https://phabricator.haskell.org/D5295

(cherry picked from commit 4ba3fa31ddfa12b428bd67216a2d4118dc9e8311)

libraries/base/GHC/IO/Handle/FD.hs

index 786fccc..f7f8d04 100644 (file)
@@ -130,7 +130,9 @@ addFilePathToIOError fun fp ioe
 --
 --  * 'isAlreadyInUseError' if the file is already open and cannot be reopened;
 --
---  * 'isDoesNotExistError' if the file does not exist; or
+--  * 'isDoesNotExistError' if the file does not exist or
+--    (on POSIX systems) is a FIFO without a reader and 'WriteMode' was
+--    requested; or
 --
 --  * 'isPermissionError' if the user does not have permission to open the file.
 --
@@ -161,7 +163,7 @@ openFileBlocking fp im =
 -- this is undesirable; also, as usual under Microsoft operating systems,
 -- text mode treats control-Z as EOF.  Binary mode turns off all special
 -- treatment of end-of-line and end-of-file characters.
--- (See also 'hSetBinaryMode'.)
+-- (See also 'System.IO.hSetBinaryMode'.)
 
 openBinaryFile :: FilePath -> IOMode -> IO Handle
 openBinaryFile fp m =