Hi, Webkittens,

I would like to make sure OR declare that WebKit does not support Windows
fibers.
While fiber related functions are used in WTF, I believe that it is because
fiber local storage (FLS) can have destructors. And it is not intended to
support fibers explicitly.

Actually, I believe the current WebKit does not work well with Windows
fibers right now.
For example, our JSC GC is conservative for stack and registers. It means
that GC needs to scan stack and registers to gather conservative roots. But
if your fiber is not executed at that time, JSC GC will miss to scan the
stack and registers of those inactive fibers. As a result, managed objects
will be collected if it is only referenced from the roots in the inactive
fibers.

And I think we can potentially improve performance of our TLS by using
thread_local implementation in VC++ instead of using FLS. FLS is slow and
it causes some problems[1]. I'm not sure the performance characteristics
and implementation details of thread_local in VC++, but it's worth checking.

So, I think we should not support Windows fibers. I would like to hear
opinions about it.

[1]: https://bugs.webkit.org/show_bug.cgi?id=146448

Best regards,
Yusuke Suzuki
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to