On Tue, Nov 6, 2012 at 4:41 PM, Ivan Zhakov <i...@visualsvn.com> wrote: > Another problem is how serf reads data from network in case of > multiple connections: it reads data from one connection until EAGAIN. > But if data comes from network really fast (from local server for > example) it continue reading data from this connection, without > reading data from other connection! Which leads time out them. > > See outgoing.c:read_from_connection()
Hmm. I'm not sure if there's an easy answer for this while keeping ra_serf single-threaded. Perhaps keep a track of how much we've read in a single connection and give up reading that connection for a bit if we've read 100KB or some such to see if there are other connections with responses ready to read. But, then again, here in 2012, I'd probably fight a lot harder to make the checkout logic run across multiple network threads as that would spread the SSL or gzip loads across multiple cores. -- justin