[Fontconfig] fontconfig: Changes to 'wip/threadsafe'

Akira TAGOH tagoh at kemper.freedesktop.org
Tue Jun 2 01:47:02 PDT 2015


New branch 'wip/threadsafe' available with the following commits:
commit 1045a40778c1f77fd88908f7b1495c6c8f01c539
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Oct 15 19:35:03 2012 -0500

    Make FcDirCacheDispose() threadsafe

commit 887bbf9984a26077105d280e8134bde9b97b34ee
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Oct 10 15:24:31 2012 -0400

    Make cache hash threadsafe
    
    This concludes my first pass at making fontconfig threadsafe.  Now to
    testing and actually fixing it!

commit 7ddb50f0af17d8cb46893640c3f3e62717eae5e5
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Oct 8 20:03:35 2012 -0400

    Make random-state initialization threadsafe

commit 8a975a9d1bc9f02baab0640c4f4f45509b3c9bcc
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Oct 8 20:02:05 2012 -0400

    Add a big cache lock
    
    Not used yet.

commit bf2c62506558fb9b858770445fff5319b2755734
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Oct 8 17:59:38 2012 -0400

    Fix FcConfigInit()
    
    Ouch!

commit e7876691ba90641bf38e80b958494eabc8657e23
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 21:03:58 2012 -0400

    Make cache refcounting threadsafe

commit fc45f436a3e73bae025cd565638f8898ab5102a3
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 17:46:12 2012 -0400

    Minor

commit 98b81e0b2a1b10c070ec2b74ca7b254b2e055575
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 17:42:18 2012 -0400

    Make FcCacheIsMmapSafe() threadsafe

commit 6fd40c71fa138ce6e90136dd0c1dbea4284c8956
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 17:41:58 2012 -0400

    Fix FcDefaultFini()
    
    Oops.

commit 9ea420ea0ff230e2a7131dbb67c68a0180507863
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 17:29:45 2012 -0400

    Minor

commit e16aa7370aa13482bd5259fd45804a5fb6564029
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 17:02:50 2012 -0400

    Make default-FcConfig threadsafe

commit baa5e7c3c94a2b5b1785b2177aafa1eba316fae8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 16:42:36 2012 -0400

    Minor

commit eea5a914375e97b979c5cc247b95b3977f02329b
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 16:37:03 2012 -0400

    Refactor; contain default config in fccfg.c

commit 1ea981331bcd7e7913c1cdd76a66fef52816dda2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 16:26:53 2012 -0400

    Make FcDefaultFini() threadsafe

commit 180b4203d781e93f2bc322240353bd36d4f65df1
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 16:09:35 2012 -0400

    Make FcInitDebug() idempotent

commit 13d3438ba6a62cadeed2874ffb6da5f318c2a0e6
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 16:07:57 2012 -0400

    Mark some vars as MT-dontcare

commit 8e9ec4c5014372223a138ffc5a8816d018db4059
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 16:04:49 2012 -0400

    Remove unused macro

commit afbf466854bd1d6e2dee2998cd66c82b6dda4e66
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 15:52:25 2012 -0400

    Make FcGetDefaultLang and FcGetDefaultLangs thread-safe

commit 336916dce0ef11ed08d61b6dd24e8b8de0c0d36c
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 15:35:47 2012 -0400

    Minor include cleanup

commit b9c06fd6272b2960c0d62560a2f051c3036e1ff6
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 14:41:38 2012 -0400

    Make refcounts, patterns, charsets, strings, and FcLang thread-safe

commit 7d36ebb500ed0263206c4b4885d2851b982c5e9f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 14:24:28 2012 -0400

    Add thread-safety primitives

commit b3a3c1d4599b9dc5412bb1dc0e57b6da75b8821f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sun Oct 7 13:49:45 2012 -0400

    Add build stuff for threadsafety primitives
    
    Copied over from HarfBuzz.

commit 38dfb8fb8eae3ca61410599890932c8583a906f1
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Oct 6 18:15:58 2012 -0400

    Fix build stuff

commit 0f6a1d3e2021173e8eee909614b15f42369daa72
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Oct 6 18:12:19 2012 -0400

    Remove shared-str pool
    
    We used to have a shared-str pool.  Removed to make thread-safety
    work easier.  My measurements show that the extra overhead is not
    significant by any means.

commit c9ac52ab54cc42c4e5d253eddb5dc39eff6ac7cb
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Oct 6 17:52:39 2012 -0400

    Switch .gitignore to git.mk

commit 22a5f865294410ed34bd9d04e66f7d0542d6670e
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Oct 6 17:52:07 2012 -0400

    Minor

commit 51de848a3e16e1be541988345eec01df0c13392b
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Oct 6 17:34:52 2012 -0400

    Use a static perfect hash table for object-name lookup
    
    Generated by gperf.  A bit fragile, but I think I got it all right.

commit 4ee76085cf240925345d33bce2c11b5e4c3c192a
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Sep 20 14:42:31 2012 -0400

    Add fcobjs.h
    
    Centralize object declaration.

commit 30bef25c000c119ecebb281d35de97379948fcb6
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Sep 20 14:01:47 2012 -0400

    Deprecate FcName(Un)RegisterObjectTypes / FcName(Un)RegisterConstants
    
    These never worked as intended.  The problem is, if Fontconfig tries to
    read config files when these new types / constants are not registered,
    it errs.  As a result, no defined types / constants are usable from
    config files.  Which makes these really useless.  Xft was the only user
    of this API and even there it's not really used.  Just kill it.
    
    One inch closer to thread-safety since we can fix the object-type hash
    table at compile time.



More information about the Fontconfig mailing list