From d0b477475135f7d216fcdfa5a2c22266234801bc Mon Sep 17 00:00:00 2001 From: Sean Wilson Date: Tue, 13 Jun 2017 12:26:25 -0500 Subject: mem: Replace EventWrapper in PacketQueue with EventFunctionWrapper In order to replicate the same `name()` output with `PacketQueue`, subclasses using EventFunctionWrapper must initialize PacketQueue with their own name so the sendEvent holds the name of the subclass. Change-Id: Ib091e118bab8858192e1d1370d61def42958ec29 Signed-off-by: Sean Wilson Reviewed-on: https://gem5-review.googlesource.com/3744 Reviewed-by: Nikos Nikoleris Reviewed-by: Jason Lowe-Power Maintainer: Nikos Nikoleris --- src/mem/packet_queue.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/mem/packet_queue.cc') diff --git a/src/mem/packet_queue.cc b/src/mem/packet_queue.cc index f7df3314f..7649fe5a6 100644 --- a/src/mem/packet_queue.cc +++ b/src/mem/packet_queue.cc @@ -50,8 +50,10 @@ using namespace std; PacketQueue::PacketQueue(EventManager& _em, const std::string& _label, + const std::string& _sendEventName, bool disable_sanity_check) - : em(_em), sendEvent(this), _disableSanityCheck(disable_sanity_check), + : em(_em), sendEvent([this]{ processSendEvent(); }, _sendEventName), + _disableSanityCheck(disable_sanity_check), label(_label), waitingOnRetry(false) { } @@ -237,7 +239,8 @@ PacketQueue::drain() ReqPacketQueue::ReqPacketQueue(EventManager& _em, MasterPort& _masterPort, const std::string _label) - : PacketQueue(_em, _label), masterPort(_masterPort) + : PacketQueue(_em, _label, name(_masterPort, _label)), + masterPort(_masterPort) { } @@ -250,7 +253,8 @@ ReqPacketQueue::sendTiming(PacketPtr pkt) SnoopRespPacketQueue::SnoopRespPacketQueue(EventManager& _em, MasterPort& _masterPort, const std::string _label) - : PacketQueue(_em, _label), masterPort(_masterPort) + : PacketQueue(_em, _label, name(_masterPort, _label)), + masterPort(_masterPort) { } @@ -262,7 +266,8 @@ SnoopRespPacketQueue::sendTiming(PacketPtr pkt) RespPacketQueue::RespPacketQueue(EventManager& _em, SlavePort& _slavePort, const std::string _label) - : PacketQueue(_em, _label), slavePort(_slavePort) + : PacketQueue(_em, _label, name(_slavePort, _label)), + slavePort(_slavePort) { } -- cgit v1.2.3