gfxFontCache expiration tracker timer keeps running due to long lived gfxFont entries
Categories
(Core :: Graphics: Text, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox111 | --- | fixed |
People
(Reporter: aosmond, Assigned: aosmond)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
The gfxFontCache expiration tracker timer keeps running due to long lived gfxFont entries. This is because we changed how the cache works to make it all threadsafe. Let's rework how we manage the expiration tracker to ensure this doesn't happen.
Assignee | ||
Comment 1•2 years ago
|
||
This patch reverts our behaviour closer to how we worked prior to bug
1780193. Parts of bug 1780193 remain because they are necessary to
ensure there are no race conditions when interacting with the cache from
multiple threads.
Now we remove fonts from the expiration tracker when there are strong
references remaining to the object. When the last strong reference is
cleared, we readd the font to the expiration tracker. A lookup will
remove it from the tracker (and creates a strong reference). If it
expires from the tracker, it is then destroy. There are several race
conditions we need to manage because the refcount can be updated without
holding the gfxFontCache mutex.
Comment 2•2 years ago
|
||
There's a r+ patch which didn't land and no activity in this bug for 2 weeks.
:aosmond, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit auto_nag documentation.
Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/91ff7911c0ec Refactor gfxFont and gfxFontCache expiration tracking. r=jfkthame
Comment 4•1 year ago
|
||
bugherder |
Updated•1 year ago
|
Updated•1 year ago
|
Updated•3 months ago
|
Description
•