On Mon, 26 Sep 2005, Philip Martin wrote:
> Philip Martin <philip@codematters.co.uk> writes:
>
> > There's also a performance issue here. Any function that simply wants
> > to read the adm directory name now has to go through a CAS. The
> > default CAS implementation is the generic mutex based implementation
> > in apr_atomic.c, so that means that every time a file in the .svn
> > directory is accessed a mutex will need to locked and unlocked.
> > That's a *lot* of mutex operations, could this be a bottleneck? Linux
> > on x86 can use the asm versions, but that's not the default and
> > doesn't help other platforms.
>
> Perhaps we should simply drop the CAS stuff and require that
> svn_wc_set_adm_dir is called when no other threads are doing any wc
> operations. After all is multi-thread support sensible? If one
> thread is successfully accessing a wc and another thread changes the
> the adm directory name the first thread is going to get libsvn_wc
> errors as the adm directory will no longer be found.
>
>
We require single-threaded init in other places (svn_{fs,utf}_initialize).
(That's because we (at least not I) didn't know about the cas functions
and that they're initialized by APR for us). I don't see that as a
problem, so +1 on dropping the CAS usage.
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Sep 26 15:41:34 2005