cleaned up queue wrapper stuff
diff --git a/aos/linux_code/queue-tmpl.h b/aos/linux_code/queue-tmpl.h
index 15029986..64121f3 100644
--- a/aos/linux_code/queue-tmpl.h
+++ b/aos/linux_code/queue-tmpl.h
@@ -193,12 +193,12 @@
 }
 
 template <class T>
-bool Queue<T>::FetchNextBlocking() {
+void Queue<T>::FetchNextBlocking() {
   Init();
-  const T *msg = static_cast<const T *>(queue_->ReadMessageIndex(RawQueue::kBlock, &index_));
+  const T *msg = static_cast<const T *>(
+      queue_->ReadMessageIndex(RawQueue::kBlock, &index_));
   queue_msg_.reset(msg);
   assert (msg != NULL);
-  return true;
 }
 
 template <class T>
@@ -218,6 +218,11 @@
 }
 
 template <class T>
+void Queue<T>::FetchAnother() {
+  if (!FetchLatest()) FetchNextBlocking();
+}
+
+template <class T>
 SafeScopedMessagePtr<T> Queue<T>::SafeMakeMessage() {
   Init();
   SafeScopedMessagePtr<T> safe_msg(queue_);