Reduce iterations and yield in multithreaded race tests

Under ThreadSanitizer (TSAN) on constrained CI runners, 1000 iterations
of font file parsing while reader threads spin without yielding caused
excessive lock contention, thread starvation, and test timeouts
exceeding 600 seconds.

Reduce NUM_ITERATIONS to 100 and add sched_yield() calls in spin-wait
and reader loops. This reduces TSAN execution time by orders of magnitude
while still reliably exercising concurrent reader and writer operations.

Changelog: none
1 file changed
tree: 5c32c3e3695ab00e3615408b2f5cdfd3379b6663
  1. .gitlab-ci/
  2. build-aux/
  3. conf.d/
  4. doc/
  5. fc-cache/
  6. fc-case/
  7. fc-cat/
  8. fc-conflist/
  9. fc-const/
  10. fc-fontations/
  11. fc-genconf/
  12. fc-genericfamily/
  13. fc-lang/
  14. fc-list/
  15. fc-match/
  16. fc-pattern/
  17. fc-query/
  18. fc-scan/
  19. fc-validate/
  20. fontconfig/
  21. its/
  22. meson-cc-tests/
  23. po/
  24. po-conf/
  25. src/
  26. subprojects/
  27. test/
  28. .clang-format
  29. .clang-format-ignore
  30. .editorconfig
  31. .gitattributes
  32. .gitignore
  33. .gitlab-ci.yml
  34. AUTHORS
  35. Cargo.lock
  36. Cargo.toml
  37. config-fixups.h
  38. COPYING
  39. fontconfig-zip.in
  40. fontconfig.pc.in
  41. fonts.conf.in
  42. fonts.dtd
  43. INSTALL
  44. local.conf
  45. meson-config.h.in
  46. meson.build
  47. meson.options
  48. new-version.sh
  49. NEWS
  50. README.md
README.md

Fontconfig

Font configuration and customization library

[[TOC]]

About Fontconfig

Fontconfig can:

  • discover new fonts when installed automatically, removing a common source of configuration problems.
  • perform font name substitution, so that appropriate alternative fonts can be selected if fonts are missing.
  • identify the set of fonts required to completely cover a set of languages.
  • have GUI configuration tools built as it uses an XML-based configuration file (though with autodiscovery, we believe this need is minimized).
  • efficiently and quickly find the fonts you need among the set of fonts you have installed, even if you have installed thousands of fonts, while minimizing memory usage.
  • be used in concert with the X Render Extension and FreeType to implement high quality, anti-aliased and subpixel rendered text on a display.

Fontconfig does not:

  • render the fonts themselves (this is left to FreeType or other rendering mechanisms)
  • depend on the X Window System in any fashion, so that printer only applications do not have such dependencies

Documentation

Bug reports

If you have encountered any issues relating to Fontconfig, please file an issue in the GitLab issue tracker.