Fix cache race in SkTypeface_Mac::Make
It was possible that multiple threads could detect that an entry did not
exist in the cache, both create a new entry, and both add to the cache.
The first to put an entry into the cache would be what subsequent
threads would retrieve from the cache.
Re-organize the code to avoid this race, make it easier to see that
typefaces created from data are not cached, and only take the mutex
once when using the cache.
Change-Id: I9a45a85ecc142d03d901037519eea0e56d30e877
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405436
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
1 file changed