Fixed actor.h startup crash.
Change-Id: I65b1136f796644b00266b89450a9766b032b1797
diff --git a/aos/common/actions/actor.h b/aos/common/actions/actor.h
index 2193ea1..0747646 100644
--- a/aos/common/actions/actor.h
+++ b/aos/common/actions/actor.h
@@ -80,8 +80,10 @@
LOG_STRUCT(DEBUG, "goal queue ", *action_q_->goal);
}
}
+ LOG(DEBUG, "Done waiting, goal\n");
return true;
}
+ LOG(DEBUG, "Done waiting, no goal\n");
return false;
}
@@ -115,6 +117,7 @@
.Send()) {
LOG(ERROR, "Failed to send the status.\n");
}
+ LOG_STRUCT(INFO, "goal", *action_q_->goal);
abort_ = !RunAction(action_q_->goal->params);
LOG(INFO, "Done with action %" PRIx32 "\n", running_id);
@@ -151,13 +154,17 @@
void ActorBase<T>::Run() {
// Make sure the last job is done and we have a signal.
- CheckInitialRunning();
-
- if (!action_q_->status.MakeWithBuilder().running(0).last_running(0).success(!abort_).Send()) {
- LOG(ERROR, "Failed to send the status.\n");
+ if (CheckInitialRunning()) {
+ LOG(DEBUG, "action %" PRIx32 " was stopped\n", action_q_->goal->run);
}
- LOG(DEBUG, "action %" PRIx32 " was stopped\n", action_q_->goal->run);
+ if (!action_q_->status.MakeWithBuilder()
+ .running(0)
+ .last_running(0)
+ .success(!abort_)
+ .Send()) {
+ LOG(ERROR, "Failed to send the status.\n");
+ }
while (true) {
// Wait for a request to come in before starting.