<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 7, 2015 at 10:16 AM, Markus Ongyerth <span dir="ltr"><<a href="mailto:ongy44@gmail.com" target="_blank">ongy44@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":18q" class="a3s" style="overflow:hidden">Mostly because i am used to the poll/select method I mentioned and that<br>
one works without any threading.<br>
I don't really mind using the threaded runtime though, it's more habit.</div></blockquote></div><br>The stock stuff in the threaded runtime uses epoll() out of the box. When you call hRead on a Handle, if the handle would block then you ultimately get a call to <a href="https://hackage.haskell.org/package/base-4.8.1.0/docs/GHC-Conc.html#v:threadWaitRead">threadWaitRead</a> or threadWaitWrite; these functions register interest in the given file descriptor, and the IO manager / GHC runtime scheduler will wake up your thread (GHC uses "green" threads) when the file descriptor becomes writable.<br><br clear="all"><div>G</div>-- <br><div class="gmail_signature">Gregory Collins <<a href="mailto:greg@gregorycollins.net" target="_blank">greg@gregorycollins.net</a>></div>
</div></div>