| Index: mojo/edk/system/dispatcher.cc
|
| diff --git a/mojo/edk/system/dispatcher.cc b/mojo/edk/system/dispatcher.cc
|
| index 29162bfc051637ff4cdf6c23a7ead97b7047673e..19621c82acbf6a534e2ce5bd1c960258989ef9a1 100644
|
| --- a/mojo/edk/system/dispatcher.cc
|
| +++ b/mojo/edk/system/dispatcher.cc
|
| @@ -325,7 +325,23 @@ MojoResult Dispatcher::AddAwakable(Awakable* awakable,
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| }
|
|
|
| - return AddAwakableImplNoLock(awakable, signals, context, signals_state);
|
| + return AddAwakableImplNoLock(awakable, signals, false, context,
|
| + signals_state);
|
| +}
|
| +
|
| +MojoResult Dispatcher::AddAwakableUnconditional(
|
| + Awakable* awakable,
|
| + MojoHandleSignals signals,
|
| + uint64_t context,
|
| + HandleSignalsState* signals_state) {
|
| + MutexLocker locker(&mutex_);
|
| + if (is_closed_) {
|
| + if (signals_state)
|
| + *signals_state = HandleSignalsState();
|
| + return MOJO_RESULT_INVALID_ARGUMENT;
|
| + }
|
| +
|
| + return AddAwakableImplNoLock(awakable, signals, true, context, signals_state);
|
| }
|
|
|
| void Dispatcher::RemoveAwakable(Awakable* awakable,
|
| @@ -551,6 +567,7 @@ HandleSignalsState Dispatcher::GetHandleSignalsStateImplNoLock() const {
|
| MojoResult Dispatcher::AddAwakableImplNoLock(
|
| Awakable* /*awakable*/,
|
| MojoHandleSignals /*signals*/,
|
| + bool /*force*/,
|
| uint64_t /*context*/,
|
| HandleSignalsState* signals_state) {
|
| mutex_.AssertHeld();
|
|
|