Ruby: More descriptive message buffer connection fatal
authorJason Power <powerjg@cs.wisc.edu>
Tue, 9 Apr 2013 21:15:06 +0000 (16:15 -0500)
committerJason Power <powerjg@cs.wisc.edu>
Tue, 9 Apr 2013 21:15:06 +0000 (16:15 -0500)
When connecting message buffers between Ruby controllers, it is
easy to mistakenly connect multiple controllers to the same message
buffer. This patch prints a more descriptive fatal message than the
previous assert statement in order to facilitate easier debugging.

src/mem/ruby/buffers/MessageBuffer.hh

index ae1635b69c2ba5de3d36027be58f0c81861cff70..d45ec6bd952396eb7b99db02c6c29adeaaa23bd4 100644 (file)
@@ -79,7 +79,11 @@ class MessageBuffer
     void setPriority(int rank) { m_priority_rank = rank; }
     void setConsumer(Consumer* consumer)
     {
-        assert(m_consumer == NULL);
+        if (m_consumer != NULL) {
+            fatal("Trying to connect %s to MessageBuffer %s. \
+                  \n%s already connected. Check the cntrl_id's.\n",
+                  *consumer, *this, *m_consumer);
+        }
         m_consumer = consumer;
     }