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

Unified Diff: services/resource_coordinator/coordination_unit/coordination_unit_impl.cc

Issue 2929883002: [GRC] ResourceCoordinatorInterface support to remove children (Closed)
Patch Set: Address reviewer feedback Created 3 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
Index: services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
diff --git a/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc b/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
index c212a708c02b3a55c7bc9e9519460391a83fef57..1547dba9d08316e848bba630d340a2c86e30f25d 100644
--- a/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
+++ b/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
@@ -157,9 +157,28 @@ bool CoordinationUnitImpl::AddChild(CoordinationUnitImpl* child) {
return children_.count(child) ? false : children_.insert(child).second;
}
-void CoordinationUnitImpl::RemoveChild(CoordinationUnitImpl* child) {
+void CoordinationUnitImpl::RemoveChild(const CoordinationUnitID& child_id) {
+ auto child_iter = g_cu_map().find(child_id);
+ if (child_iter == g_cu_map().end()) {
+ return;
+ }
+
+ CoordinationUnitImpl* child = child_iter->second;
+ if (!HasChild(child)) {
+ return;
+ }
+
+ DCHECK(child->id_ == child_id);
+ DCHECK(child != this);
+
+ if (RemoveChild(child)) {
+ child->RemoveParent(this);
+ }
+}
+
+bool CoordinationUnitImpl::RemoveChild(CoordinationUnitImpl* child) {
size_t children_removed = children_.erase(child);
- DCHECK_EQ(1u, children_removed);
+ return children_removed > 0;
}
void CoordinationUnitImpl::AddParent(CoordinationUnitImpl* parent) {

Powered by Google App Engine
This is Rietveld 408576698