From: Joschka B. <jbo...@un...> - 2007-05-24 14:13:53
|
Hi Jan and all, first of all, I also could apply Yuan's patch without any problems (great work, Yuan!). I face similar problems and I will write in more detail tomorrow, for now I just wanted to give the fix for the failed assertion below. >> (SimulationServer) entering runloop >> lt-monitorspark: /usr/include/boost/shared_ptr.hpp:253: T* boost::shared_ptr<T>::operator->() const [with T = oxygen::SimControlNode]: Assertion `px != 0' failed. >> Abgebrochen >> > > monitorspark always exits with this message. The internal rendering > seems to work, though. But with 6 local agents connected it doesn't > react to mouse and keyboard any more. :-( > > Any ideas about why the assertion fails? > In lib/oxygen/simulationserver/simulationserver.cpp, in Method Run, there is a test missing to see whether the shared pointer to the AgentControlNode is non-zero. So instead of shared_ptr<SimControlNode> agentCtrNode = GetControlNode("AgentControl"); agentCtrNode->Run(); insert a quick check and you should be fine (monitorspark uses the simulationserver, but has no agentcontrol node...) shared_ptr<SimControlNode> agentCtrNode = GetControlNode("AgentControl"); if (agentCtrNode.get()) agentCtrNode->Run(); Cheers, Joschka |