Fix infinite loop in logger

Also, increase max size of timing report message so that the logger can
generate a timing report.

Change-Id: I7a612c432c5fd881ae95c15388b61d9fd588c28c
diff --git a/aos/events/aos.json b/aos/events/aos.json
index 141a43d..27ce666 100644
--- a/aos/events/aos.json
+++ b/aos/events/aos.json
@@ -4,7 +4,8 @@
       "name": "/aos",
       "type": "aos.timing.Report",
       "frequency": 50,
-      "num_senders": 20
+      "num_senders": 20,
+      "max_size": 2048
     }
   ]
 }
diff --git a/aos/events/logging/logger.cc b/aos/events/logging/logger.cc
index 5b3d553..d8e504f 100644
--- a/aos/events/logging/logger.cc
+++ b/aos/events/logging/logger.cc
@@ -180,8 +180,11 @@
           }
         }
 
-        if (!f.written && f.fetcher->context().monotonic_sent_time <
-                              last_synchronized_time_) {
+        CHECK(!f.written);
+
+        // TODO(james): Write tests to exercise this logic.
+        if (f.fetcher->context().monotonic_sent_time <
+            last_synchronized_time_) {
           // Write!
           flatbuffers::FlatBufferBuilder fbb(f.fetcher->context().size +
                                              max_header_size_);
@@ -217,6 +220,8 @@
           writer_->QueueSizedFlatbuffer(&fbb);
 
           f.written = true;
+        } else {
+          break;
         }
       }