Closed Bug 1386893 Opened 3 years ago Closed 3 years ago

Make AbstractThread thread safety assertions more generic to work with Quantum DOM cooperative threads

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox57 --- fixed

People

(Reporter: billm, Assigned: billm)

References

Details

Attachments

(1 file)

Attached patch patchSplinter Review
AbstractThread has some thread safety assertions that will not work when "main thread" work runs on a pool of cooperative threads. This patch changes the assertions to rely more on nsIEventTarget::IsOnCurrentThread, which understands the cooperative threading model. (It uses GetCurrentVirtualThread() rather than PR_GetCurrentThread() or NS_GetCurrentThread(), which both return a different value for each cooperative thread.)

nsIEventTarget::IsOnCurrentThread should still work at shutdown since it uses PRThreads internally.
Attachment #8893147 - Flags: review?(jwwang)
Comment on attachment 8893147 [details] [diff] [review]
patch

Review of attachment 8893147 [details] [diff] [review]:
-----------------------------------------------------------------

Can also remove EventTargetWrapper::mRunningThread. I guess we don't have to fix bug 1323742 anymore when this patch is landed.
Attachment #8893147 - Flags: review?(jwwang) → review+
Pushed by wmccloskey@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a41c2b21ee54
Update AbstractThread thread safety assertions to work with cooperative threading (r=jwwang)
https://hg.mozilla.org/mozilla-central/rev/a41c2b21ee54
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
https://hg.mozilla.org/projects/date/rev/a41c2b21ee54708b3ebd74fbe927824d2e847017
Bug 1386893 - Update AbstractThread thread safety assertions to work with cooperative threading (r=jwwang)
You need to log in before you can comment on or make changes to this bug.