From a2be8eba3aaf11a9a73092793d27d6d46b4270cd Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 19 Jun 2021 09:18:26 +0200 Subject: Add .so target. Fix ready state checks. --- task.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'task.cc') diff --git a/task.cc b/task.cc index d539b50..10e9368 100644 --- a/task.cc +++ b/task.cc @@ -39,32 +39,38 @@ bool Task::ready() { for(const auto& task : dependsTasks) { - if(task->dirty() && !task->done()) + if(task->dirty() || task->state() == State::Running) { return false; } } + task_state.store(State::Ready); return true; } int Task::run() { - if(is_done.load()) + if(task_state.load() == State::Done) { return 0; } + task_state.store(State::Running); auto ret = runInner(); if(ret == 0) { - is_done.store(true); + task_state.store(State::Done); + } + else + { + task_state.store(State::Error); } return ret; } -bool Task::done() const +State Task::state() const { - return is_done.load(); + return task_state.load(); } -- cgit v1.2.3