[Fontconfig] fontconfig: Branch 'master'
Akira TAGOH
tagoh at kemper.freedesktop.org
Sun Jun 17 18:53:32 PDT 2012
src/fcatomic.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
New commits:
commit 4353df754fcf4126ff4a69ccfef1a59450e5a7c7
Author: Akira TAGOH <akira at tagoh.org>
Date: Mon Jun 18 10:52:21 2012 +0900
clean up the lock file properly on even hardlink-not-supported filesystem.
diff --git a/src/fcatomic.c b/src/fcatomic.c
index bc7b07b..350744a 100644
--- a/src/fcatomic.c
+++ b/src/fcatomic.c
@@ -105,6 +105,7 @@ FcAtomicLock (FcAtomic *atomic)
#ifdef HAVE_LINK
int fd = -1;
FILE *f = 0;
+ FcBool no_link = FcFalse;
strcpy ((char *) atomic->tmp, (char *) atomic->file);
strcat ((char *) atomic->tmp, TMP_NAME);
@@ -137,6 +138,7 @@ FcAtomicLock (FcAtomic *atomic)
* the hard link. so better try to fallback
*/
ret = mkdir ((char *) atomic->lck, 0600);
+ no_link = FcTrue;
}
(void) unlink ((char *) atomic->tmp);
#else
@@ -156,8 +158,16 @@ FcAtomicLock (FcAtomic *atomic)
if ((long int) (now - lck_stat.st_mtime) > 10 * 60)
{
#ifdef HAVE_LINK
- if (unlink ((char *) atomic->lck) == 0)
- return FcAtomicLock (atomic);
+ if (no_link)
+ {
+ if (rmdir ((char *) atomic->lck) == 0)
+ return FcAtomicLock (atomic);
+ }
+ else
+ {
+ if (unlink ((char *) atomic->lck) == 0)
+ return FcAtomicLock (atomic);
+ }
#else
if (rmdir ((char *) atomic->lck) == 0)
return FcAtomicLock (atomic);
More information about the Fontconfig
mailing list