Closed Bug 582776 Opened 14 years ago Closed 6 years ago

Thread-safe string/namespace interning

Categories

(Tamarin Graveyard :: Virtual Machine, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: siwilkin, Assigned: gchaney)

References

Details

Attachments

(1 file, 1 obsolete file)

A performant implementation of thread-safe string interning will be necessary for a multi-threaded VM.

This is a tracking bug for any schemes we come up with.

The initial patch is very simple: interning operations are just protected by a lock. However, as the interning operation can trigger a ZCT reap, unfortunately this lock has to be one of the safepointing-aware variety from bug 575544.
Attached patch Initial patch (obsolete) — Splinter Review
This patch is polluted by other bits of thread-safety work in AvmCore. The only relevant bits are those dealing with STRING_INTERN_LOCKER
Depends on: 555760, 555765
Blocks: 582817
Blocks: 600723
Assignee: nobody → siwilkin
Flags: flashplayer-qrb+
Assignee: siwilkin → gchaney
Attachment #461042 - Attachment is obsolete: true
Depends on: 649920
(In reply to comment #2)
> Created attachment 525935 [details] [diff] [review]
> Latest. TR rev 6090. Patch queue rev 276

Note the use of GCAutoCollectionDisable to prevent deadlocks when trying to allocate a String when holding the interning lock.

Also note that rehashing is disabled when the intern table is inspected from AvmCore::isInternedUint. This is an optimization so that the interning lock does not need to be acquired.
Blocks: 650108
Tamarin is a dead project now. Mass WONTFIX.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: