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

Re: [PATCH] Refactor the bdb atomic initialization code into a generic implementation

From: Garrett Rooney <rooneg_at_electricjellyfish.net>
Date: 2006-08-04 22:49:04 CEST

On 8/4/06, Branko Èibej <brane@xbc.nu> wrote:
> Vlad Georgescu wrote:
> > [[[
> > Extract the atomic initialization code from libsvn_fs_base/bdb/env.c
> > and convert
> > it to a generic implementation that can be used to initialize other
> > libraries
> > (*cough* Cyrus SASL *cough*). Make bdb use the new implementation.
> >
> > * subversion/include/svn_atomic.h: New file.
> >
> > * subversion/libsvn_subr/atomic.c: New file.
> >
> > * subversion/libsvn_fs_base/bdb/env.c
> > Include svn_atomic.h instead of apr_atomic.h.
> > (svn__atomic_t,
> > svn__atomic_read,
> > svn__atomic_set,
> > svn__atomic_cas): These are now in subversion/include/svn_atomic.h
> > and have a single underscore. All calls were changed to reflect this.
> > (BDB_CACHE_UNINITIALIZED,
> > BDB_CACHE_START_INIT,
> > BDB_CACHE_INIT_FAILED,
> > BDB_CACHE_INITIALIZED): Deleted. Similar definitions are now in
> > svn_atomic.h.
> I cannot for the life of me imagine why these definitions should be part
> of Subversion's public API. In fact, they shouldn't be. They should
> either go into svn_private_config.h, or, if that's not appropriate
> (being a generated header), we should introduce a new _private_ header
> for them.
>
> -1 on putting them in include/svn_atomic.h, they have no use outside the
> library implementation.

Perhaps a new subversion/include/private directory for such things is
in order, for headers that are used in various libraries but should
not be installed. That would be somewhat nicer than the current
practice of doing something like:

#include "../libsvn_subr/atomics.h"

Other than that problem, I think this patch is a good step forward.

-garrett
Received on Fri Aug 4 22:49:29 2006

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.