Re: svn commit: r1580914 - /subversion/trunk/subversion/libsvn_subr/io.c
From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Mon, 24 Mar 2014 17:31:18 +0000 (GMT)
I reverted this in r1580926.
Bert Huijben wrote:
It effectively added one 'stat' to the code path for whatever client-level operation was performed.
> I don't see why this patch improves the current behavior of this function.
It doesn't, it was only to simplify the code and remove what looked like a dodgy return path.
> The if case you removed checked if the time to wait for is in the past, which
As I explained on IRC, my version eliminated the possibility of calculating a negative delay.
> In these cases we now just wait one second extra...
No, not one extra second; we just wait till the next one-second boundary starting from after the 'stat' rather than starting from before the 'stat'. That adds one 'stat' time on average.
> Originally we always waited (<= 1.5), but then we made use of the delay time
Agreed. And that was a nice touch.
> But now the code is updated to still wait the old long time... after we spend
I've reverted it because I want you to be happy with it and I don't care that much -- the whole thing is a horribly crude hack anyway. If we care about it at all we should make it figure out how long it really needs to wait.
p.s. For other readers, I only started looking at this at all because Philip reported an actual bug whereby the function's 1-millisecond delay is simply wrong for many Linux systems.
This is an archived mail posted to the Subversion Dev mailing list.