[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: EAGAIN handling in libsvn_ra_serf

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Mon, 29 Oct 2012 23:04:35 +0000

Philip Martin <philip.martin_at_wandisco.com> writes:

> In several places in ra_serf I see the pattern:
>
> /* Skip on to the next iteration of this loop. */
> if (APR_STATUS_IS_EAGAIN(status))
> {
> return svn_ra_serf__wrap_err(status, NULL);
> }
> continue;
>
> Is that test correct? It causes EAGAIN to be returned and any other
> error to continue the loop which seems to contradict the comment. I
> suppose EAGAIN could be handled at some higher level but simply
> continuing on all other errors looks wrong.

If I reverse the EAGAIN test then the regression tests hang so it
appears that returning EAGAIN and simply continuing for all other errors
does work. I see serf itself has some EAGAIN code so perhaps that is
where it gets handled. It's not clear to me how non-EAGAIN errors are
handled as they appear to simply get discarded.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download
Received on 2012-10-30 00:05:12 CET

This is an archived mail posted to the Subversion Dev mailing list.