Bug 37206
Summary: | [Qt] Enable the build with JSC_MULTIPLE_THREADS on all platforms | ||
---|---|---|---|
Product: | WebKit | Reporter: | Simon Hausmann <hausmann> |
Component: | Platform | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | Normal | CC: | kenneth, kent.hansen, koshuin, laszlo.gombos, ogoffart, s.mathur |
Priority: | P2 | Keywords: | Qt, QtTriaged |
Version: | 528+ (Nightly build) | ||
Hardware: | All | ||
OS: | All |
Simon Hausmann
Currently JSC_MULTIPLE_THREADS is not enabled for the Qt build on all platforms.
There are some places where this feature define is used to protect concurrent access to data structures when JavaScriptCore is used with multiple threads. For example wtf/dtoa.cpp for the conversion of doubles to strings is not reentrant and has a mutex guard that is only enabled when the feature define is set.
The current lack of this feature being enabled may be the cause of flakey crashes in the HTML worker layout tests as well as crashes in QtScript when used in multiple threads.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Simon Hausmann
The following features need to be implemented:
runtime/Collector.cpp:216:2: error: #error Need to initialize pagesize safely.
runtime/Collector.cpp:805:2: error: #error Need a way to suspend threads on this platform
/runtime/Collector.cpp:816:2: error: #error Need a way to resume threads on this platform
runtime/Collector.cpp:841:2: error: #error Need a thread register struct for this platform
runtime/Collector.cpp:881:2: error: #error Need a way to get thread registers on this platform
runtime/Collector.cpp:921:2: error: #error Need a way to get the stack pointer for another thread on this platform
Janne Koskinen
additional task for Symbian: you need to change stack size for pthread in allocator or it will keep crashing as default is 8kB. set it to max 80kB allowed by the kernel or use QThreads which does this for you.
Kenneth Rohde Christiansen
Which are the platforms where this is lacking?
Laszlo Gombos
(In reply to comment #3)
> Which are the platforms where this is lacking?
All except MAC - see http://trac.webkit.org/changeset/51288.
Kenneth Rohde Christiansen
Is this really feasible for QtWebKit2.0? or maybe we should move this requirement to the 2.1 blocker instead.
Simon Hausmann
(In reply to comment #5)
> Is this really feasible for QtWebKit2.0? or maybe we should move this requirement to the 2.1 blocker instead.
Realistically speaking this doesn't appear feasible for the 2.0 release indeed.
Simon Hausmann
JSC_MULTIPLE_THREADS was removed in r95510 and is considered enabled by default.