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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/task_dependency_manager.cc

Issue 550903002: [SyncFS] Rename BlockingFactor to TaskBlocker (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync_file_system/drive_backend/task_dependency_manager. h" 5 #include "chrome/browser/sync_file_system/drive_backend/task_dependency_manager. h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 for (itr = paths_to_insert.begin(); itr != end; ++itr) 52 for (itr = paths_to_insert.begin(); itr != end; ++itr)
53 paths->erase(*itr); 53 paths->erase(*itr);
54 return false; 54 return false;
55 } 55 }
56 } 56 }
57 return true; 57 return true;
58 } 58 }
59 59
60 } // namespace 60 } // namespace
61 61
62 BlockingFactor::BlockingFactor() : exclusive(false) {} 62 TaskBlocker::TaskBlocker() : exclusive(false) {}
63 BlockingFactor::~BlockingFactor() {} 63 TaskBlocker::~TaskBlocker() {}
64 64
65 TaskDependencyManager::TaskDependencyManager() 65 TaskDependencyManager::TaskDependencyManager()
66 : running_task_count_(0), 66 : running_task_count_(0),
67 running_exclusive_task_(false) {} 67 running_exclusive_task_(false) {}
68 68
69 TaskDependencyManager::~TaskDependencyManager() { 69 TaskDependencyManager::~TaskDependencyManager() {
70 DCHECK(paths_by_app_id_.empty()); 70 DCHECK(paths_by_app_id_.empty());
71 DCHECK(file_ids_.empty()); 71 DCHECK(file_ids_.empty());
72 DCHECK(tracker_ids_.empty()); 72 DCHECK(tracker_ids_.empty());
73 } 73 }
74 74
75 bool TaskDependencyManager::Insert(const BlockingFactor* blocking_factor) { 75 bool TaskDependencyManager::Insert(const TaskBlocker* task_blocker) {
76 if (running_exclusive_task_) 76 if (running_exclusive_task_)
77 return false; 77 return false;
78 78
79 if (!blocking_factor) { 79 if (!task_blocker) {
80 ++running_task_count_; 80 ++running_task_count_;
81 return true; 81 return true;
82 } 82 }
83 83
84 if (blocking_factor->exclusive) { 84 if (task_blocker->exclusive) {
85 if (running_task_count_ || 85 if (running_task_count_ ||
86 !tracker_ids_.empty() || 86 !tracker_ids_.empty() ||
87 !file_ids_.empty() || 87 !file_ids_.empty() ||
88 !paths_by_app_id_.empty()) 88 !paths_by_app_id_.empty())
89 return false; 89 return false;
90 ++running_task_count_; 90 ++running_task_count_;
91 running_exclusive_task_ = true; 91 running_exclusive_task_ = true;
92 return true; 92 return true;
93 } 93 }
94 94
95 if (!InsertAllOrNone(blocking_factor->tracker_ids, &tracker_ids_)) 95 if (!InsertAllOrNone(task_blocker->tracker_ids, &tracker_ids_))
96 goto fail_on_tracker_id_insertion; 96 goto fail_on_tracker_id_insertion;
97 97
98 if (!InsertAllOrNone(blocking_factor->file_ids, &file_ids_)) 98 if (!InsertAllOrNone(task_blocker->file_ids, &file_ids_))
99 goto fail_on_file_id_insertion; 99 goto fail_on_file_id_insertion;
100 100
101 if (!blocking_factor->app_id.empty() && 101 if (!task_blocker->app_id.empty() &&
102 !InsertPaths(blocking_factor->paths, 102 !InsertPaths(task_blocker->paths,
103 &paths_by_app_id_[blocking_factor->app_id])) { 103 &paths_by_app_id_[task_blocker->app_id])) {
104 if (paths_by_app_id_[blocking_factor->app_id].empty()) 104 if (paths_by_app_id_[task_blocker->app_id].empty())
105 paths_by_app_id_.erase(blocking_factor->app_id); 105 paths_by_app_id_.erase(task_blocker->app_id);
106 goto fail_on_path_insertion; 106 goto fail_on_path_insertion;
107 } 107 }
108 108
109 ++running_task_count_; 109 ++running_task_count_;
110 return true; 110 return true;
111 111
112 fail_on_path_insertion: 112 fail_on_path_insertion:
113 EraseContainer(blocking_factor->file_ids, &file_ids_); 113 EraseContainer(task_blocker->file_ids, &file_ids_);
114 fail_on_file_id_insertion: 114 fail_on_file_id_insertion:
115 EraseContainer(blocking_factor->tracker_ids, &tracker_ids_); 115 EraseContainer(task_blocker->tracker_ids, &tracker_ids_);
116 fail_on_tracker_id_insertion: 116 fail_on_tracker_id_insertion:
117 117
118 return false; 118 return false;
119 } 119 }
120 120
121 void TaskDependencyManager::Erase(const BlockingFactor* blocking_factor) { 121 void TaskDependencyManager::Erase(const TaskBlocker* task_blocker) {
122 --running_task_count_; 122 --running_task_count_;
123 DCHECK_LE(0, running_task_count_); 123 DCHECK_LE(0, running_task_count_);
124 if (!blocking_factor) 124 if (!task_blocker)
125 return; 125 return;
126 126
127 if (blocking_factor->exclusive) { 127 if (task_blocker->exclusive) {
128 DCHECK(running_exclusive_task_); 128 DCHECK(running_exclusive_task_);
129 DCHECK(paths_by_app_id_.empty()); 129 DCHECK(paths_by_app_id_.empty());
130 DCHECK(file_ids_.empty()); 130 DCHECK(file_ids_.empty());
131 DCHECK(tracker_ids_.empty()); 131 DCHECK(tracker_ids_.empty());
132 DCHECK_EQ(0, running_task_count_); 132 DCHECK_EQ(0, running_task_count_);
133 133
134 running_exclusive_task_ = false; 134 running_exclusive_task_ = false;
135 return; 135 return;
136 } 136 }
137 137
138 if (!blocking_factor->app_id.empty()) { 138 if (!task_blocker->app_id.empty()) {
139 EraseContainer(blocking_factor->paths, 139 EraseContainer(task_blocker->paths,
140 &paths_by_app_id_[blocking_factor->app_id]); 140 &paths_by_app_id_[task_blocker->app_id]);
141 if (paths_by_app_id_[blocking_factor->app_id].empty()) 141 if (paths_by_app_id_[task_blocker->app_id].empty())
142 paths_by_app_id_.erase(blocking_factor->app_id); 142 paths_by_app_id_.erase(task_blocker->app_id);
143 } 143 }
144 144
145 EraseContainer(blocking_factor->file_ids, &file_ids_); 145 EraseContainer(task_blocker->file_ids, &file_ids_);
146 EraseContainer(blocking_factor->tracker_ids, &tracker_ids_); 146 EraseContainer(task_blocker->tracker_ids, &tracker_ids_);
147 } 147 }
148 148
149 } // namespace drive_backend 149 } // namespace drive_backend
150 } // namespace sync_file_system 150 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698