[Fontconfig] Re: Structure of cache files

Matthias Clasen mclasen at redhat.com
Tue Oct 4 13:05:30 EST 2005


On Mon, 2005-10-03 at 22:17 -0400, Patrick Lam wrote:
> Matthias Clasen wrote:
> > 
> > Actually, thinking about FcDirCacheValid some more, I don't see how the
> > single per-file timestamp can work at all with multi-platform cache
> > files. Imagine that a new font gets installed in a directory with a
> > multi-platform cache. If you then run fc-cache on i386, it'll update
> > only the i386 section of the cache, but update the timestamp, marking
> > the whole cache file as uptodate, so a later run on x86_64 will not
> > update the x86_64 segment. I think the only solution to this is to put 
> > per-segment timestamps into the file, and use them to determine
> > cache-outdatedness on a per-platform basis. Or simply use one cache file
> > per platform...
> 
> Oops, you're right.  How about this: when we find that the cache is
> invalidated on any platform, we remove all stale sections from other
> platforms.  That ought to be sufficient to avoid staleness (safety).  Of
> course, an update to a file which is not stale preserves existing
> sections (liveness).  With this solution, in order to fully update cache
> files, you'll have to run fc-cache on all relevant platforms once, which
> is the best we can do (without cross-platform cache creation) anyway.

Sounds like it should work well enough (since fonts are not installed
with high frequency...)

Matthias




More information about the Fontconfig mailing list