Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

hWaitForInput cannot be interrupted by async exceptions on unix
http://hackage.haskell.org/package/base-4.6.0.1/docs/System-Timeout.html claims that `timeout` can interrupt `hWaitForInput`, but in fact that's false (e.g. mentioned in #7353\#[ticket:8684\#comment:78734](https://gitlab.haskell.org//ghc/ghc/issues/8684#note_78734)). ``` -- import Control.Concurrent import System.IO import System.Timeout main = timeout (1 * 1000000) $ hWaitForInput stdin (5 * 1000) ``` will not be killed after 1 second, but instead wait for the full 5 seconds timeout passed to `hWaitForInput`. The implementation is `ready` at https://downloads.haskell.org/\~ghc/7.6.3/docs/html/libraries/base/src/GHC-IO-FD.html, where we have two foreign calls: `safe fdReady` and `unsafe unsafe_fdReady`. The actual C implementation is at https://github.com/ghc/packages-base/blob/52c0b09036c36f1ed928663abb2f295fd36a88bb/cbits/inputReady.c\#L16. It uses `select` on Unix, and does check for `EINTR`, so I believe that according to http://www.haskell.org/ghc/docs/7.6.3/html/users_guide/ffi.html\#ffi-interruptible both foreign calls can be replaced by a single `interruptible` one. Is that true? If not, it's a documentation bug in `timeout` at least. Also, does `interruptible`, apart from allowing the function to be interrupted, behave more like `safe` or `unsafe`?
issue