
On Mon, Oct 21, 2013 at 7:28 PM, Joey Adams
On Mon, Oct 21, 2013 at 5:15 PM, Corey O'Connor
wrote: Curiously: If the Network.HTTP.close is removed the server does not fail, but some requests takes several seconds to process. I presume the ordering of effects is then correct, but without the explicit close the close occurs only a GC time.
The client may be trying to reuse the connection; see http://en.wikipedia.org/wiki/HTTP_persistent_connection. This seems consistent with your results:
* With the close call: connection is closed right after client sends a second request, so client whines. * Without the close call: client waits around for a response, then gives up and establishes another connection.
To confirm, add another receiveHTTP call client_interact and see if it returns another Request.
Thanks! I'll try your test and see if anything changes. Though I thought the code accounted for this: A connection close header is added to each response. Which I thought would cause the client to close the connection. I could be totally wrong tho. There could be some additional aspect of HTTP connections I do not understand. Properly supporting persistent connections should be pretty easy. There is another Network.HTTP server package that does this: http://hackage.haskell.org/package/http-server-1/docs/Network-HTTP-Server.ht... So I'll give that a shot and report back. Thanks! Corey