#include "base/threading/thread_restrictions.h"
namespace cc {
-namespace internal {
namespace {
// Helper class for iterating over all dependents of a task.
} // namespace
-Task::Task() : did_run_(false) {}
+Task::Task() : will_run_(false), did_run_(false) {
+}
-Task::~Task() {}
+Task::~Task() {
+ DCHECK(!will_run_);
+}
void Task::WillRun() {
+ DCHECK(!will_run_);
DCHECK(!did_run_);
+ will_run_ = true;
}
-void Task::DidRun() { did_run_ = true; }
+void Task::DidRun() {
+ DCHECK(will_run_);
+ will_run_ = false;
+ did_run_ = true;
+}
bool Task::HasFinishedRunning() const { return did_run_; }
has_namespaces_with_finished_running_tasks_cv_.Signal();
}
-} // namespace internal
} // namespace cc