bug fix
Some checks failed
CI / Ubuntu (push) Has been cancelled
CI / Codecov (push) Has been cancelled
CI / Windows_MinGW (push) Has been cancelled
CI / Mac_OS_X (macos-14) (push) Has been cancelled
CI / Mac_OS_X (macos-latest) (push) Has been cancelled
CI / Windows_Visual_Studio (push) Has been cancelled

This commit is contained in:
menglei.zhang
2025-11-03 12:29:44 -08:00
committed by Songyuan Bai
parent 4f5774be5b
commit c92e91fa1d

View File

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