Index: base/test/sequenced_task_runner_test_template.cc |
=================================================================== |
--- base/test/sequenced_task_runner_test_template.cc (revision 186525) |
+++ base/test/sequenced_task_runner_test_template.cc (working copy) |
@@ -16,7 +16,10 @@ |
: i(i), type(type) { |
} |
-SequencedTaskTracker::SequencedTaskTracker() : next_post_i_(0) { |
+SequencedTaskTracker::SequencedTaskTracker() |
+ : next_post_i_(0), |
+ task_end_count_(0), |
+ task_end_cv_(&lock_) { |
} |
void SequencedTaskTracker::PostWrappedNonNestableTask( |
@@ -81,6 +84,8 @@ |
void SequencedTaskTracker::TaskEnded(int i) { |
AutoLock lock(lock_); |
events_.push_back(TaskEvent(i, TaskEvent::END)); |
+ ++task_end_count_; |
+ task_end_cv_.Signal(); |
} |
const std::vector<TaskEvent>& |
@@ -88,6 +93,12 @@ |
return events_; |
} |
+void SequencedTaskTracker::WaitForCompletedTasks(int count) { |
+ AutoLock lock(lock_); |
+ while (task_end_count_ < count) |
+ task_end_cv_.Wait(); |
+} |
+ |
SequencedTaskTracker::~SequencedTaskTracker() { |
} |