Bug 1410232 - fix SchedulerGroupSet::Put when transitioning to multiple groups; r=billm
authorNathan Froyd <froydnj@mozilla.com>
Mon, 23 Oct 2017 08:49:41 -0400
changeset 440918 baa55120263b9763e48dec6e63d94ea04e20583c
parent 440917 c4c253a9a462e99e1ca09090980ad17f7411f38e
child 440919 9056f2ee492fa481aa86146aba236c074628e9fd
child 440996 6fa6cfe0199ca95e3a37f35f59ba047849e2ae80
push id1618
push userCallek@gmail.com
push dateThu, 11 Jan 2018 17:45:48 +0000
treeherdermozilla-release@882ca853e05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbillm
bugs1410232
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1410232 - fix SchedulerGroupSet::Put when transitioning to multiple groups; r=billm We were moving state from single -> multi, but we weren't doing anything with the group that was passed in for such cases.
xpcom/threads/nsILabelableRunnable.cpp
--- a/xpcom/threads/nsILabelableRunnable.cpp
+++ b/xpcom/threads/nsILabelableRunnable.cpp
@@ -40,17 +40,19 @@ nsILabelableRunnable::IsReadyToRun()
 }
 
 void
 nsILabelableRunnable::SchedulerGroupSet::Put(mozilla::SchedulerGroup* aGroup)
 {
   if (mSingle) {
     MOZ_ASSERT(mMulti.isNothing());
     mMulti.emplace();
-    mMulti.ref().PutEntry(mSingle);
+    auto& multi = mMulti.ref();
+    multi.PutEntry(mSingle);
+    multi.PutEntry(aGroup);
     mSingle = nullptr;
     return;
   }
 
   if (mMulti.isSome()) {
     MOZ_ASSERT(!mSingle);
     mMulti.ref().PutEntry(aGroup);
     return;