threadWaitRead/registerFd unusable
The following program:
module Main where
import System.Posix.IO
import GHC.Event
main = do
Just mgr <- getSystemEventManager
fd <- openFd "/tmp/bleh" ReadOnly Nothing defaultFileFlags { nonBlock = True }
key <- registerFd mgr (\_ _ -> putStrLn "hello") fd evtRead MultiShot
return ()
fails with:
*** Exception: modifyFdOnce: permission denied (Operation not permitted)
Since threadWaitRead and family are implemented in terms of registerFd, they also fail with the same error.
Perhaps I am misunderstanding how to use this function, but in this case the conditions that must hold true regarding file descriptors should be documented somewhere.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.10.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |