Initialize m_savedNodeList during Partition

This commit is contained in:
menglei.zhang
2025-11-03 12:10:24 -08:00
committed by Songyuan Bai
parent 3bac85dcab
commit 4f5774be5b

View File

@@ -138,12 +138,10 @@ MultithreadedSimulatorImpl::ScheduleWithContext(uint32_t context,
EventImpl* event) EventImpl* event)
{ {
NS_LOG_FUNCTION(this << context << delay.GetTimeStep() << event); NS_LOG_FUNCTION(this << context << delay.GetTimeStep() << event);
if (m_savedNodeList.GetN() <= context) const bool useSaved = (context < m_savedNodeList.GetN());
{ Ptr<Node> node = useSaved ? m_savedNodeList.Get(context) : NodeList::GetNode(context);
m_savedNodeList = NodeContainer::GetGlobal(); LogicalProcess* remote = MtpInterface::GetSystem(node->GetSystemId());
} remote->ScheduleWithContext(remote, context, delay, event);
LogicalProcess* remote = MtpInterface::GetSystem(m_savedNodeList.Get(context)->GetSystemId());
MtpInterface::GetSystem()->ScheduleWithContext(remote, context, delay, event);
} }
EventId EventId
@@ -303,6 +301,7 @@ MultithreadedSimulatorImpl::Partition()
NS_LOG_FUNCTION(this); NS_LOG_FUNCTION(this);
uint32_t systemId = 0; uint32_t systemId = 0;
const NodeContainer nodes = NodeContainer::GetGlobal(); const NodeContainer nodes = NodeContainer::GetGlobal();
m_savedNodeList = NodeContainer::GetGlobal();
bool* visited = new bool[nodes.GetN()]{false}; bool* visited = new bool[nodes.GetN()]{false};
std::queue<Ptr<Node>> q; std::queue<Ptr<Node>> q;