Index: mojo/edk/system/data_pipe_consumer_dispatcher.cc |
diff --git a/mojo/edk/system/data_pipe_consumer_dispatcher.cc b/mojo/edk/system/data_pipe_consumer_dispatcher.cc |
index 474e99d4955fc3c0e6cdc98f045af90e9d44e988..f3387324fc6e4c16a546ddb89b4d69c094cf7df5 100644 |
--- a/mojo/edk/system/data_pipe_consumer_dispatcher.cc |
+++ b/mojo/edk/system/data_pipe_consumer_dispatcher.cc |
@@ -248,7 +248,6 @@ MojoResult DataPipeConsumerDispatcher::EndReadData(uint32_t num_bytes_read) { |
CHECK(shared_ring_buffer_); |
- HandleSignalsState old_state = GetHandleSignalsStateNoLock(); |
MojoResult rv; |
if (num_bytes_read > two_phase_max_bytes_read_ || |
num_bytes_read % options_.element_num_bytes != 0) { |
@@ -268,10 +267,7 @@ MojoResult DataPipeConsumerDispatcher::EndReadData(uint32_t num_bytes_read) { |
in_two_phase_read_ = false; |
two_phase_max_bytes_read_ = 0; |
- HandleSignalsState new_state = GetHandleSignalsStateNoLock(); |
- if (!new_state.equals(old_state)) |
- awakable_list_.AwakeForStateChange(new_state); |
- watchers_.NotifyState(new_state); |
+ watchers_.NotifyState(GetHandleSignalsStateNoLock()); |
return rv; |
} |
@@ -299,45 +295,6 @@ MojoResult DataPipeConsumerDispatcher::RemoveWatcherRef( |
return watchers_.Remove(watcher, context); |
} |
-MojoResult DataPipeConsumerDispatcher::AddAwakable( |
- Awakable* awakable, |
- MojoHandleSignals signals, |
- uintptr_t context, |
- HandleSignalsState* signals_state) { |
- base::AutoLock lock(lock_); |
- if (!shared_ring_buffer_ || in_transit_) { |
- if (signals_state) |
- *signals_state = HandleSignalsState(); |
- return MOJO_RESULT_INVALID_ARGUMENT; |
- } |
- UpdateSignalsStateNoLock(); |
- HandleSignalsState state = GetHandleSignalsStateNoLock(); |
- if (state.satisfies(signals)) { |
- if (signals_state) |
- *signals_state = state; |
- return MOJO_RESULT_ALREADY_EXISTS; |
- } |
- if (!state.can_satisfy(signals)) { |
- if (signals_state) |
- *signals_state = state; |
- return MOJO_RESULT_FAILED_PRECONDITION; |
- } |
- |
- awakable_list_.Add(awakable, signals, context); |
- return MOJO_RESULT_OK; |
-} |
- |
-void DataPipeConsumerDispatcher::RemoveAwakable( |
- Awakable* awakable, |
- HandleSignalsState* signals_state) { |
- base::AutoLock lock(lock_); |
- if ((!shared_ring_buffer_ || in_transit_) && signals_state) |
- *signals_state = HandleSignalsState(); |
- else if (signals_state) |
- *signals_state = GetHandleSignalsStateNoLock(); |
- awakable_list_.Remove(awakable); |
-} |
- |
void DataPipeConsumerDispatcher::StartSerialize(uint32_t* num_bytes, |
uint32_t* num_ports, |
uint32_t* num_handles) { |
@@ -480,7 +437,6 @@ MojoResult DataPipeConsumerDispatcher::CloseNoLock() { |
ring_buffer_mapping_.reset(); |
shared_ring_buffer_ = nullptr; |
- awakable_list_.CancelAll(); |
watchers_.NotifyClosed(); |
if (!transferred_) { |
base::AutoUnlock unlock(lock_); |
@@ -598,11 +554,8 @@ void DataPipeConsumerDispatcher::UpdateSignalsStateNoLock() { |
if (has_new_data) |
new_data_available_ = true; |
- if (peer_closed_ != was_peer_closed || has_new_data) { |
- HandleSignalsState state = GetHandleSignalsStateNoLock(); |
- awakable_list_.AwakeForStateChange(state); |
- watchers_.NotifyState(state); |
- } |
+ if (peer_closed_ != was_peer_closed || has_new_data) |
+ watchers_.NotifyState(GetHandleSignalsStateNoLock()); |
} |
} // namespace edk |