On Fri, Aug 20, 2010 at 14:58, Magnus Therning <mag...@therning.org> wrote: > Indeed. > > In many protocols it would force the attacker to send well-formed requests > though. I think this is true for many text-based protocols like > HTTP. > > The looping can be handled effectively through hWaitForInput. > > There are also other reasons for doing non-blocking IO, not least that it > makes developing and manual testing a lot nicer.
I think I'm failing to understand something. Using a non-blocking read doesn't change how the iteratees react to well- or mal-formed requests. All it does is change the failure condition from "blocked indefinitely" to "looping indefinitely". Replacing the hGet with a combination of hWaitForInput / hGetNonBlocking would cause a third failure condition, "looping indefinitely with periodic blocks". This doesn't seem to be an improvement over simply blocking. Do you have any example code which works well using a non-blocking enumerator, but fails with a blocking one? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe