Niklas Hambüchen <[email protected]> writes:

> I just got reminded that epoll() has no effect on regular files on
> Linux by reading an nginx article [1] [2] and why that is [3] [4].
>
> By what means does the IO manager make reads (wraps around the read()
> syscall on Linux) non-blocking?
>
> Does it always use read() in `foreign import safe` (or
> `interruptible`) so that an OS thread is spawned?
>
> It would be great if somebody could point me to the code where that's
> done (not again: for *regular* files).
>
I believe the relevant implementation is the RawIO instance defined in
GHC.IO.FD. The read implementation in particular is
GHC.IO.FD.readRawBufferPtr. There is a useful Note directly above
this function.

Cheers,

- Ben

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to