Bug 1170231 - Part 1: Remove condition that may cause deadlock in IPC when mediating interrupt races. r=dvander, a=kglazko
authorAaron Klotz <aklotz@mozilla.com>
Fri, 26 Jun 2015 11:01:26 -0700
changeset 268790 19937e5a290437205deaa74832f1358e79a33420
parent 268789 01cb22fe59d45e02d1c559a21cd913701c0bf7fd
child 268791 ff1058741c2c37f394cfd35ae0a889a92e7f2ee9
push id4932
push userjlund@mozilla.com
push dateMon, 10 Aug 2015 18:23:06 +0000
treeherdermozilla-esr52@6dd5a4f5f745 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdvander, kglazko
bugs1170231
milestone41.0a2
Bug 1170231 - Part 1: Remove condition that may cause deadlock in IPC when mediating interrupt races. r=dvander, a=kglazko
ipc/glue/MessageChannel.cpp
--- a/ipc/glue/MessageChannel.cpp
+++ b/ipc/glue/MessageChannel.cpp
@@ -1371,19 +1371,16 @@ MessageChannel::MaybeUndeferIncall()
         return;
 
     size_t stackDepth = InterruptStackDepth();
 
     // the other side can only *under*-estimate our actual stack depth
     IPC_ASSERT(mDeferred.top().interrupt_remote_stack_depth_guess() <= stackDepth,
                "fatal logic error");
 
-    if (mDeferred.top().interrupt_remote_stack_depth_guess() < RemoteViewOfStackDepth(stackDepth))
-        return;
-
     // maybe time to process this message
     Message call = mDeferred.top();
     mDeferred.pop();
 
     // fix up fudge factor we added to account for race
     IPC_ASSERT(0 < mRemoteStackDepthGuess, "fatal logic error");
     --mRemoteStackDepthGuess;