Closed
Bug 839471
Opened 12 years ago
Closed 12 years ago
GC: Sweep type objects on the background thread
Categories
(Core :: JavaScript Engine, enhancement)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla21
People
(Reporter: jonco, Assigned: jonco)
Details
Attachments
(1 file)
|
7.14 KB,
patch
|
billm
:
review+
|
Details | Diff | Splinter Review |
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.
| Assignee | ||
Comment 1•12 years ago
|
||
| Assignee | ||
Comment 2•12 years ago
|
||
Try build here - looking good so far:
https://tbpl.mozilla.org/?tree=Try&rev=cbabf5b94168
| Assignee | ||
Updated•12 years ago
|
Attachment #711810 -
Flags: review?(wmccloskey)
Attachment #711810 -
Flags: review?(wmccloskey) → review+
| Assignee | ||
Comment 3•12 years ago
|
||
Comment 4•12 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in
before you can comment on or make changes to this bug.
Description
•