Closed Bug 546314 Opened 14 years ago Closed 14 years ago

enterFrame thread-local is not destroyed on shutdown

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect, P2)

x86
macOS
defect

Tracking

(Not tracked)

VERIFIED INVALID
flash10.1

People

(Reporter: lhansen, Assigned: lhansen)

Details

(From Manoj Tharwani and Mukesh Shah, Flashlite)

Problem
=======
 
GCHeap class has GCThreadlocal template member 
   GCThreadLocal<EnterFrame*> enterFrame;

Constructor of GCThreadLocal calls VMPI_tlsCreate(&tlsId);

However there is no calls to destructor of GCThreadLocal

This results in _no_ calls to VMPI_tlsDestroy(tlsId);
 
Fix Suggested
===========
 
Call to explicit destructor from the GCHeap::DestroyInstance() by adding
      enterFrame.~GCThreadlocal();
 
This fix doesn’t seems to be a clean fix. Please let us know your suggestion to handle this situation in a better way.
Upon visual inspection I don't see the bug, GCHeap::DestroyInstance calls GCThreadLocal::destroy which calls VMPO_tlsDestroy.
Assignee: nobody → lhansen
Priority: -- → P2
Target Milestone: --- → flash10.1
(In reply to comment #1)
> Upon visual inspection I don't see the bug, GCHeap::DestroyInstance calls
> GCThreadLocal::destroy which calls VMPO_tlsDestroy.

I agree, and testing verifies that.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INVALID
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.