Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(543)

Unified Diff: mojo/edk/system/dispatcher.cc

Issue 2084593005: Rationalize AddAwakable...() and RemoveAwakable...() methods. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: doh Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/edk/system/dispatcher.h ('k') | mojo/edk/system/dispatcher_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/edk/system/dispatcher.cc
diff --git a/mojo/edk/system/dispatcher.cc b/mojo/edk/system/dispatcher.cc
index 2c9ade3c3a341622040e31d986eb63fe52ca93d0..02304bd64d53a03d7ebd13be9101a989d0725a22 100644
--- a/mojo/edk/system/dispatcher.cc
+++ b/mojo/edk/system/dispatcher.cc
@@ -306,8 +306,9 @@ HandleSignalsState Dispatcher::GetHandleSignalsState() const {
}
MojoResult Dispatcher::AddAwakable(Awakable* awakable,
- MojoHandleSignals signals,
uint64_t context,
+ bool force,
+ MojoHandleSignals signals,
HandleSignalsState* signals_state) {
MutexLocker locker(&mutex_);
if (is_closed_) {
@@ -316,26 +317,13 @@ MojoResult Dispatcher::AddAwakable(Awakable* awakable,
return MOJO_RESULT_INVALID_ARGUMENT;
}
- return AddAwakableImplNoLock(awakable, signals, false, context,
+ return AddAwakableImplNoLock(awakable, context, force, signals,
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,
+void Dispatcher::RemoveAwakable(bool match_context,
+ Awakable* awakable,
+ uint64_t context,
HandleSignalsState* signals_state) {
MutexLocker locker(&mutex_);
if (is_closed_) {
@@ -344,20 +332,7 @@ void Dispatcher::RemoveAwakable(Awakable* awakable,
return;
}
- RemoveAwakableImplNoLock(awakable, signals_state);
-}
-
-void Dispatcher::RemoveAwakableWithContext(Awakable* awakable,
- uint64_t context,
- HandleSignalsState* signals_state) {
- MutexLocker locker(&mutex_);
- if (is_closed_) {
- if (signals_state)
- *signals_state = HandleSignalsState();
- return;
- }
-
- RemoveAwakableWithContextImplNoLock(awakable, context, signals_state);
+ RemoveAwakableImplNoLock(match_context, awakable, context, signals_state);
}
Dispatcher::Dispatcher() : is_closed_(false) {}
@@ -568,9 +543,9 @@ HandleSignalsState Dispatcher::GetHandleSignalsStateImplNoLock() const {
MojoResult Dispatcher::AddAwakableImplNoLock(
Awakable* /*awakable*/,
- MojoHandleSignals /*signals*/,
- bool /*force*/,
uint64_t /*context*/,
+ bool /*force*/,
+ MojoHandleSignals /*signals*/,
HandleSignalsState* signals_state) {
mutex_.AssertHeld();
DCHECK(!is_closed_);
@@ -581,7 +556,9 @@ MojoResult Dispatcher::AddAwakableImplNoLock(
return MOJO_RESULT_FAILED_PRECONDITION;
}
-void Dispatcher::RemoveAwakableImplNoLock(Awakable* /*awakable*/,
+void Dispatcher::RemoveAwakableImplNoLock(bool /*match_context*/,
+ Awakable* /*awakable*/,
+ uint64_t /*context*/,
HandleSignalsState* signals_state) {
mutex_.AssertHeld();
DCHECK(!is_closed_);
@@ -591,18 +568,6 @@ void Dispatcher::RemoveAwakableImplNoLock(Awakable* /*awakable*/,
*signals_state = HandleSignalsState();
}
-void Dispatcher::RemoveAwakableWithContextImplNoLock(
- Awakable* /*awakable*/,
- uint64_t /*context*/,
- HandleSignalsState* signals_state) {
- mutex_.AssertHeld();
- DCHECK(!is_closed_);
- // By default, waiting isn't supported. Only dispatchers that can be waited on
- // will do something nontrivial.
- if (signals_state)
- *signals_state = HandleSignalsState();
-}
-
void Dispatcher::StartSerializeImplNoLock(Channel* /*channel*/,
size_t* max_size,
size_t* max_platform_handles) {
« no previous file with comments | « mojo/edk/system/dispatcher.h ('k') | mojo/edk/system/dispatcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698