Index: mojo/edk/system/message_pipe_dispatcher.cc |
diff --git a/mojo/edk/system/message_pipe_dispatcher.cc b/mojo/edk/system/message_pipe_dispatcher.cc |
index b4938fe797feba1e3b008262521dd05648370948..beb182428957c84d07ca0fe9f31d77eaff952c53 100644 |
--- a/mojo/edk/system/message_pipe_dispatcher.cc |
+++ b/mojo/edk/system/message_pipe_dispatcher.cc |
@@ -618,7 +618,7 @@ MojoResult MessagePipeDispatcher::ReadMessageImplNoLock( |
uint32_t* num_dispatchers, |
MojoReadMessageFlags flags) { |
lock().AssertAcquired(); |
- if (channel_) { |
+ if (transferable_ && channel_) { |
channel_->EnsureLazyInitialized(); |
} else if (!transferable_) { |
if (non_transferable_state_ == WAITING_FOR_READ_OR_WRITE) { |
@@ -718,7 +718,7 @@ MojoResult MessagePipeDispatcher::AddAwakableImplNoLock( |
uintptr_t context, |
HandleSignalsState* signals_state) { |
lock().AssertAcquired(); |
- if (channel_) { |
+ if (transferable_ && channel_) { |
channel_->EnsureLazyInitialized(); |
} else if (!transferable_ && |
non_transferable_state_ == WAITING_FOR_READ_OR_WRITE) { |