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

RE: Build system info needed

From: Files <files_at_poetryunlimited.com>
Date: 2003-10-29 18:24:30 CET

Think again. :-)

You're making it too hard for yourself.

If you open a file in exclusive mode, whether your program exits w/ abort or
exit, the file may not be deleted, but it can be recreated and exclusive
access granted.

C standard library guarantees this behavior. And as evidenced in other
threads, Windoze honors this as well.

I agree, deletion of the file seems like a good choice. But consider that the
db..lock file created by Berkeley-db never disappears.

I would probably move the logic for creating the lock file/opening the lock
file, into a separate function and simply have it return a boolean status.

That way, your open function stays simple and only requires one if statement.

And if you decide to wait for a lock for a given length of time or decide to
do additional modifications, the open function is STILL simple.

I would use a static function.

Maybe at some point in the future, your static function could become a
configurable part of the plugin interface.

-- 
Shamim Islam
BA BS
Kopp David K said:
> Shamim,
>
> I am willing to reconsider.
>
> Here is how I understand what Greg is talking about (As an aside, I have
> noticed that our email system here is not forwarding all of the list's
> messages to me. Don't you just love Exchange?)
>
> This approach is to add code to svn_repos_open in repos.c in libsvn_repos
>
> The resulting function would look something like this:
>
> svn_error_t *
> svn_repos_open (svn_repos_t **repos_p,
>                 const char *path,
>                 apr_pool_t *pool)
> {
>   /* Check some repository property to see if we should try our lan related
> locking */
>   property_check_code_here
>
>   /* If we are supposed to make an external lock file, do it here. If we
> could
>      not create our lock file, then return some sort of SVN error code */
>   lock_file_creation_code_here
>
>
>   /* Fetch a repository object initialized with a shared read/write
>      lock on the database. */
>
>   SVN_ERR (get_repos (repos_p, path,
>                       APR_FLOCK_SHARED,
>                       TRUE,     /* open the db into repos->fs. */
>                       pool));
>
>   return SVN_NO_ERROR;
> }
>
> My question then becomes, where is the lock file deleted? I didn't see any
> svn_repos_close function.
>
> Is this right?
>
> David
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Oct 29 18:27:38 2003

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.