diff --git a/ipc/glue/AsyncChannel.cpp b/ipc/glue/AsyncChannel.cpp index 15a3f84641dc..79b7c87ad8cd 100644 --- a/ipc/glue/AsyncChannel.cpp +++ b/ipc/glue/AsyncChannel.cpp @@ -91,6 +91,7 @@ AsyncChannel::AsyncChannel(AsyncListener* aListener) mCvar(mMutex, "mozilla.ipc.AsyncChannel.mCvar"), mIOLoop(), mWorkerLoop(), + mChild(false), mChannelErrorTask(NULL) { MOZ_COUNT_CTOR(AsyncChannel); diff --git a/ipc/glue/RPCChannel.cpp b/ipc/glue/RPCChannel.cpp index bda765500f8f..99a738a7a3f8 100644 --- a/ipc/glue/RPCChannel.cpp +++ b/ipc/glue/RPCChannel.cpp @@ -472,7 +472,7 @@ RPCChannel::BlockOnParent() NS_RUNTIMEABORT("attempt to block child when it's already blocked"); mBlockedOnParent = true; - while (1) { + do { // XXX this dispatch loop shares some similarities with the // one in Call(), but the logic is simpler and different // enough IMHO to warrant its own dispatch loop @@ -502,12 +502,7 @@ RPCChannel::BlockOnParent() AsyncChannel::OnDispatchMessage(recvd); } } - - // the last message, if async, may have been the one that - // unblocks us - if (!mBlockedOnParent) - break; - } + } while (mBlockedOnParent); EnqueuePendingMessages(); }