139a140,152
> /**
> * A map from line addresses to lists of stalled messages for that line.
> * If this buffer allows the receiver to stall messages, on a stall
> * request, the stalled message is removed from the m_prio_heap and placed
> * in the m_stall_msg_map. Messages are held there until the receiver
> * requests they be reanalyzed, at which point they are moved back to
> * m_prio_heap.
> *
> * NOTE: The stall map holds messages in the order in which they were
> * initially received, and when a line is unblocked, the messages are
> * moved back to the m_prio_heap in the same order. This prevents starving
> * older requests with younger ones.
> */
141a155,168
> /**
> * Current size of the stall map.
> * Track the number of messages held in stall map lists. This is used to
> * ensure that if the buffer is finite-sized, it blocks further requests
> * when the m_prio_heap and m_stall_msg_map contain m_max_size messages.
> */
> int m_stall_map_size;
>
> /**
> * The maximum capacity. For finite-sized buffers, m_max_size stores a
> * number greater than 0 to indicate the maximum allowed number of messages
> * in the buffer at any time. To get infinitely-sized buffers, set buffer
> * size: m_max_size = 0
> */
142a170
>