Closed
Bug 1449506
Opened 8 years ago
Closed 8 years ago
Clarify AtomMarking synchronisation
Categories
(Core :: JavaScript: GC, enhancement, P3)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla61
| Tracking | Status | |
|---|---|---|
| firefox61 | --- | fixed |
People
(Reporter: jonco, Assigned: jonco)
References
Details
Attachments
(1 file)
|
9.66 KB,
patch
|
sfink
:
review+
|
Details | Diff | Splinter Review |
The comments in AtomMarkingRuntime say that the table of unused indexes is protected by the GC lock, but the field is wrapped with ExclusiveAccessLockOrGCTaskData<>. In fact it is only ever accessed with the GC lock held.
| Assignee | ||
Comment 1•8 years ago
|
||
This patch changes the wrapper to GCLockData<> and passes AutoLockGC& through to everything that touches it. I find the latter helps me to see where locks are held in the code.
I changed the assertions in the methods that update chunk mark bits to ensure that we're in a GC with no helper threads running. Currently we assert that the current thread holds the exclusive access lock but that's actually a bit of a lie because this is executed on a helper thread while the main thread holds the lock and the assertion somehow allows this. I'll file for that as well.
For AtomMarkingRuntime::adoptMarkedAtoms we don't need the exclusive access lock at this point. This is called when merging zones after the source zone has ceased to belong to a helper thread.
Attachment #8963029 -
Flags: review?(sphink)
Updated•8 years ago
|
Priority: -- → P3
Updated•8 years ago
|
Attachment #8963029 -
Flags: review?(sphink) → review+
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/902feab0373f
Clarify AtomMarking locking r=sfink
Comment 3•8 years ago
|
||
| bugherder | ||
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox61:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in
before you can comment on or make changes to this bug.
Description
•