Index: mojo/system/raw_channel_posix.cc |
diff --git a/mojo/system/raw_channel_posix.cc b/mojo/system/raw_channel_posix.cc |
index ecacd29778a27ed899749d896c2155a635f11205..cc6324d547785faf3a93fe498fa85c7671061c4e 100644 |
--- a/mojo/system/raw_channel_posix.cc |
+++ b/mojo/system/raw_channel_posix.cc |
@@ -41,6 +41,10 @@ class RawChannelPosix : public RawChannel, |
private: |
// |RawChannel| protected methods: |
+ // Actually override |EnqueueMessageNoLock()| so that we can send multiple |
+ // messages with FDs if necessary. |
+ virtual void EnqueueMessageNoLock( |
+ scoped_ptr<MessageInTransit> message) OVERRIDE; |
virtual IOResult Read(size_t* bytes_read) OVERRIDE; |
virtual IOResult ScheduleRead() OVERRIDE; |
virtual embedder::ScopedPlatformHandleVectorPtr GetReadPlatformHandles( |
@@ -112,6 +116,13 @@ size_t RawChannelPosix::GetSerializedPlatformHandleSize() const { |
return 0; |
} |
+void RawChannelPosix::EnqueueMessageNoLock( |
+ scoped_ptr<MessageInTransit> message) { |
+ // TODO(vtl): Split any message with too many platform handles into multiple |
+ // messages. |
+ RawChannel::EnqueueMessageNoLock(message.Pass()); |
+} |
+ |
RawChannel::IOResult RawChannelPosix::Read(size_t* bytes_read) { |
DCHECK_EQ(base::MessageLoop::current(), message_loop_for_io()); |
DCHECK(!pending_read_); |