Guarded RC write barriers for background compiler and XMLAsync

NEW
Assigned to

Status

Tamarin
Virtual Machine
7 years ago
7 years ago

People

(Reporter: Simon Wilkinson, Assigned: Garnet Chaney)

Tracking

(Depends on: 1 bug, Blocks: 2 bugs)

unspecified
Future
Dependency tree / graph
Bug Flags:
flashplayer-qrb +

Details

Attachments

(1 attachment)

(Reporter)

Description

7 years ago
Updates all necessary RC write barriers to GUARDED versions to support the background compiler (bug 600723) and async XML parsing (bug 582817).

In other words, only the RC write barriers updated by this patch are reachable from compiler or XML parse threads, and hence are required to be GUARDED. All other VM barriers are only reachable from the main thread (gc-owner thread), and hence require no modification.

See bug 623993 for an overview of why guarded RC write barriers are necessary.

Note:
This patch could be optimized much more aggressively.
Specifically, as some general data-structures (e.g. MultinameHashtable) are reachable by compiler or XML parse threads, they have unconditionally GUARDED RC write barriers. Clearly this is overkill. Instead, MultinameHashtable et-al could have an additional template parameter (the existing MMgc::ThreadGuard enum) which specializes per instance the data-structure's use of guarded barriers.
(Reporter)

Updated

7 years ago
Assignee: nobody → gchaney
(Reporter)

Comment 1

7 years ago
Created attachment 526040 [details] [diff] [review]
Latest. TR rev 6090. Patch queue rev 278
(Reporter)

Updated

7 years ago
Blocks: 600723, 582817
(Reporter)

Updated

7 years ago
Depends on: 623993

Updated

7 years ago
Flags: flashplayer-qrb+
Target Milestone: --- → Future
You need to log in before you can comment on or make changes to this bug.