| Index: mojo/edk/system/data_pipe_producer_dispatcher.cc
|
| diff --git a/mojo/edk/system/data_pipe_producer_dispatcher.cc b/mojo/edk/system/data_pipe_producer_dispatcher.cc
|
| index cbbade8b0249dfc177cf6ccb83eb584791421d6b..1776da2510994d1e6b1b1e5c92ad4c34afe010a8 100644
|
| --- a/mojo/edk/system/data_pipe_producer_dispatcher.cc
|
| +++ b/mojo/edk/system/data_pipe_producer_dispatcher.cc
|
| @@ -20,6 +20,7 @@
|
| #include "mojo/edk/system/data_pipe_control_message.h"
|
| #include "mojo/edk/system/node_controller.h"
|
| #include "mojo/edk/system/ports_message.h"
|
| +#include "mojo/public/c/system/data_pipe.h"
|
|
|
| namespace mojo {
|
| namespace edk {
|
| @@ -85,6 +86,28 @@ MojoResult DataPipeProducerDispatcher::Close() {
|
| return CloseNoLock();
|
| }
|
|
|
| +MojoResult DataPipeProducerDispatcher::Watch(
|
| + MojoHandleSignals signals,
|
| + const Watcher::WatchCallback& callback,
|
| + uintptr_t context) {
|
| + base::AutoLock lock(lock_);
|
| +
|
| + if (is_closed_ || in_transit_)
|
| + return MOJO_RESULT_INVALID_ARGUMENT;
|
| +
|
| + return awakable_list_.AddWatcher(
|
| + signals, callback, context, GetHandleSignalsStateNoLock());
|
| +}
|
| +
|
| +MojoResult DataPipeProducerDispatcher::CancelWatch(uintptr_t context) {
|
| + base::AutoLock lock(lock_);
|
| +
|
| + if (is_closed_ || in_transit_)
|
| + return MOJO_RESULT_INVALID_ARGUMENT;
|
| +
|
| + return awakable_list_.RemoveWatcher(context);
|
| +}
|
| +
|
| MojoResult DataPipeProducerDispatcher::WriteData(const void* elements,
|
| uint32_t* num_bytes,
|
| MojoWriteDataFlags flags) {
|
|
|