Bert Huijben wrote on Thu, May 19, 2011 at 17:41:13 +0200:
>
>
> > -Original Message-
> > From: Daniel Shahaf [mailto:danie...@elego.de]
> > Sent: donderdag 19 mei 2011 17:36
> > To: dev@subversion.apache.org
> > Cc: Daniel Shahaf
> > Subject: R
> -Original Message-
> From: Daniel Shahaf [mailto:danie...@elego.de]
> Sent: donderdag 19 mei 2011 17:36
> To: dev@subversion.apache.org
> Cc: Daniel Shahaf
> Subject: Re: Locking and errors (and deserialization) in inprocess-cache
>
> Actually, the followi
Actually, the following might suffice for now:
Index: subversion/libsvn_subr/cache-inprocess.c
===
--- subversion/libsvn_subr/cache-inprocess.c(revision 1124903)
+++ subversion/libsvn_subr/cache-inprocess.c(working copy)
@@ -1
In inprocess-cache.c the following pattern is common:
svn_error_t *inprocess_callback()
{
SVN_ERR(lock_cache(cache));
SVN_ERR(body());
SVN_ERR(unlock_cache(cache));
return something;
}
So, if an error occurs, then all future cache calls deadlock; and it's
easy to forget to balance lock/un
4 matches
Mail list logo