Convert actions to event loops
The logic gets significantly simpler due to Watchers. But we also get
to port all the users over as well.
Change-Id: Ib4e75951e65f7431acc6c1548b7f1d20da3da295
diff --git a/aos/logging/implementations.cc b/aos/logging/implementations.cc
index 78b6724..f37f0ca 100644
--- a/aos/logging/implementations.cc
+++ b/aos/logging/implementations.cc
@@ -101,12 +101,14 @@
} // namespace
-void FillInMessageStructure(log_level level,
+void FillInMessageStructure(bool add_to_type_cache, log_level level,
const ::std::string &message_string, size_t size,
const MessageType *type,
const ::std::function<size_t(char *)> &serialize,
LogMessage *message) {
- type_cache::AddShm(type->id);
+ if (add_to_type_cache) {
+ type_cache::AddShm(type->id);
+ }
message->structure.type_id = type->id;
FillInMessageBase(level, message);
@@ -280,8 +282,8 @@
log_level level, const ::std::string &message_string, size_t size,
const MessageType *type, const ::std::function<size_t(char *)> &serialize) {
LogMessage message;
- internal::FillInMessageStructure(level, message_string, size, type, serialize,
- &message);
+ internal::FillInMessageStructure(fill_type_cache(), level, message_string,
+ size, type, serialize, &message);
HandleMessage(message);
}
@@ -403,8 +405,8 @@
size_t size, const MessageType *type,
const ::std::function<size_t(char *)> &serialize) override {
LogMessage *message = GetMessageOrDie();
- internal::FillInMessageStructure(level, message_string, size, type,
- serialize, message);
+ internal::FillInMessageStructure(fill_type_cache(), level, message_string,
+ size, type, serialize, message);
Write(message);
}