On Wed, Oct 7, 2009 at 11:11, Bert Huijben <rhuijben_at_sharpsvn.net> wrote:
>...
> +++ trunk/subversion/libsvn_fs_fs/fs.h Wed Oct 7 08:11:47 2009 (r39828)
> @@ -147,6 +147,15 @@ typedef struct fs_fs_shared_txn_data_t
> apr_pool_t *pool;
> } fs_fs_shared_txn_data_t;
>
> +/* On most operating systems apr implements file locks per process, not
> + per file. On Windows apr implements the locking as per file handle
> + locks, so we don't have to add our own mutex for just in-process
> + synchronization. */
> +#if APR_HAS_THREADS && !defined(WIN32)
> +#define SVN_FS_FS__USE_LOCK_MUTEX 1
> +#else
> +#define SVN_FS_FS__USE_LOCK_MUTEX 0
> +#endif
>
> /* Private FSFS-specific data shared between all svn_fs_t objects that
> relate to a particular filesystem, as identified by filesystem UUID.
> @@ -163,7 +172,7 @@ typedef struct
> Access to this object is synchronised under TXN_LIST_LOCK. */
> fs_fs_shared_txn_data_t *free_txn;
>
> -#if APR_HAS_THREADS
> +#if SVN_FS_FS__USE_LOCK_MUTEX
> /* A lock for intra-process synchronization when accessing the TXNS list. */
> apr_thread_mutex_t *txn_list_lock;
This change looks *totally* wrong. The txn list should be synchronized
on *all* platforms all the time since it is simply an in-memory
structure. It has nothing to do with files.
>...
Cheers,
-g
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2404643
Received on 2009-10-07 21:22:44 CEST