| Index: mojo/edk/system/awakable_list.cc
|
| diff --git a/mojo/edk/system/awakable_list.cc b/mojo/edk/system/awakable_list.cc
|
| index 2c2b466b508a4d4829310562df3653fe1738b440..b3e2763823ef811b2d58aba986649e8118e5270c 100644
|
| --- a/mojo/edk/system/awakable_list.cc
|
| +++ b/mojo/edk/system/awakable_list.cc
|
| @@ -13,8 +13,7 @@
|
| namespace mojo {
|
| namespace system {
|
|
|
| -AwakableList::AwakableList() {
|
| -}
|
| +AwakableList::AwakableList() {}
|
|
|
| AwakableList::~AwakableList() {
|
| DCHECK(awakables_.empty());
|
| @@ -27,11 +26,14 @@ void AwakableList::OnStateChange(const HandleSignalsState& old_state,
|
| auto last = awakables_.end();
|
| for (AwakeInfoList::iterator it = awakables_.begin(); it != last;) {
|
| bool keep = true;
|
| - if (new_state.satisfies(it->signals) && !old_state.satisfies(it->signals))
|
| - keep = it->awakable->Awake(MOJO_RESULT_OK, it->context);
|
| - else if (!new_state.can_satisfy(it->signals) &&
|
| - old_state.can_satisfy(it->signals))
|
| - keep = it->awakable->Awake(MOJO_RESULT_FAILED_PRECONDITION, it->context);
|
| + if (new_state.satisfies(it->signals) && !old_state.satisfies(it->signals)) {
|
| + keep = it->awakable->Awake(it->context, Awakable::AwakeReason::SATISFIED,
|
| + new_state);
|
| + } else if (!new_state.can_satisfy(it->signals) &&
|
| + old_state.can_satisfy(it->signals)) {
|
| + keep = it->awakable->Awake(
|
| + it->context, Awakable::AwakeReason::UNSATISFIABLE, new_state);
|
| + }
|
|
|
| if (!keep) {
|
| --last;
|
| @@ -46,7 +48,8 @@ void AwakableList::OnStateChange(const HandleSignalsState& old_state,
|
| void AwakableList::CancelAll() {
|
| for (AwakeInfoList::iterator it = awakables_.begin(); it != awakables_.end();
|
| ++it) {
|
| - it->awakable->Awake(MOJO_RESULT_CANCELLED, it->context);
|
| + it->awakable->Awake(it->context, Awakable::AwakeReason::CANCELLED,
|
| + HandleSignalsState());
|
| }
|
| awakables_.clear();
|
| }
|
|
|