| Index: mojo/edk/system/local_message_pipe_endpoint.cc
|
| diff --git a/mojo/edk/system/local_message_pipe_endpoint.cc b/mojo/edk/system/local_message_pipe_endpoint.cc
|
| index 77088855e6adb20c60ba986bff665cee97633e53..7c648f4b3db16f01408baad7d586a99e8ba24eed 100644
|
| --- a/mojo/edk/system/local_message_pipe_endpoint.cc
|
| +++ b/mojo/edk/system/local_message_pipe_endpoint.cc
|
| @@ -159,19 +159,18 @@ MojoResult LocalMessagePipeEndpoint::AddAwakable(
|
| HandleSignalsState state = GetHandleSignalsState();
|
| if (signals_state)
|
| *signals_state = state;
|
| - if (state.satisfies(signals)) {
|
| - if (persistent)
|
| - awakable_list_.Add(awakable, context, persistent, signals);
|
| - return MOJO_RESULT_ALREADY_EXISTS;
|
| - }
|
| - if (!state.can_satisfy(signals)) {
|
| - if (persistent)
|
| - awakable_list_.Add(awakable, context, persistent, signals);
|
| - return MOJO_RESULT_FAILED_PRECONDITION;
|
| - }
|
| + MojoResult rv = MOJO_RESULT_OK;
|
| + bool should_add = persistent;
|
| + if (state.satisfies(signals))
|
| + rv = MOJO_RESULT_ALREADY_EXISTS;
|
| + else if (!state.can_satisfy(signals))
|
| + rv = MOJO_RESULT_FAILED_PRECONDITION;
|
| + else
|
| + should_add = true;
|
|
|
| - awakable_list_.Add(awakable, context, persistent, signals);
|
| - return MOJO_RESULT_OK;
|
| + if (should_add)
|
| + awakable_list_.Add(awakable, context, persistent, signals, state);
|
| + return rv;
|
| }
|
|
|
| void LocalMessagePipeEndpoint::RemoveAwakable(
|
|
|