Closed Bug 839471 Opened 10 years ago Closed 10 years ago
GC: Sweep type objects on the background thread
Following on from sweeping shapes and baseshapes on the background thread, we can do the same for type objects. One issue however is that TypeCompartment::markSetsUnknown() iterates over all type objects in the compartment. Previously this was disallowed for thing kinds that were background finalized, as the other thread may be updating the heap data structures at the same time. I've changed this so that for background finalized kinds CellIter waits for the background thread to finish sweeping if it is currently doing so. No GC slice can occur while we are iterating, and this is asserted in debug builds, so I think this is safe. This is a potential source of pauses, however I don't think it gets called that often in practice.
Try build here - looking good so far: https://tbpl.mozilla.org/?tree=Try&rev=cbabf5b94168
Attachment #711810 - Flags: review?(wmccloskey)
Attachment #711810 - Flags: review?(wmccloskey) → review+
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in before you can comment on or make changes to this bug.