[Webkit-unassigned] [Bug 199857] [WTF] Thread::removeFromThreadGroup leaks weak pointers.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Aug 9 10:41:03 PDT 2019


https://bugs.webkit.org/show_bug.cgi?id=199857

--- Comment #14 from Yusuke Suzuki <ysuzuki at apple.com> ---
Comment on attachment 375899
  --> https://bugs.webkit.org/attachment.cgi?id=375899
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=375899&action=review

>> Source/WTF/wtf/Threading.h:296
>> +    HashMap<ThreadGroup*, std::weak_ptr<ThreadGroup>> m_threadGroupMap;
> 
> Future cleanup thought: Can we make HashSet<std::weak_ptr<ThreadGroup>> work for a case like this, rather than requiring use of a map?

Yeah, I would like to make this too :D
Unfortunately, currently, `std::weak_ptr` does not have a way to get a raw pointer if the held object is dead (I would like to have `std::weak_ptr::get()`...).
So we need our own WeakPtr implementation which is thread-safe and having a method (like WeakPtr::getRaw()) returning an original pointer regardless of liveness (thread-safe weak pointer is why we are using std::weak_ptr and std::shared_ptr instead of RefPtr and WeakPtr here).

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190809/e3d3bfb0/attachment.html>


More information about the webkit-unassigned mailing list